【问题标题】:Pass complex json object to ashx via jquery通过 jquery 将复杂的 json 对象传递给 ashx
【发布时间】:2010-11-01 14:14:09
【问题描述】:

我在客户端(嵌套数组)上有一个复杂的 json 对象,需要将它传递给服务器进行处理。我目前正在使用 ashx,并且正在尝试使用 jquery $.ajax 和 $.post 调用来尝试将可用结构返回给服务器。谁能告诉我传递复杂 json 对象的最佳方法,以便我可以在服务器上解析它并访问各种嵌套的 json 数组等?非常感谢。我正在使用 ASP.NET 2.0

【问题讨论】:

    标签: jquery ajax arrays json nested


    【解决方案1】:

    我目前通过将 JSON 对象作为字符串(单个参数)传递给服务器,然后将其解析回对象来执行此操作。我更喜欢JSON2 library 将对象字符串化为字符串。在服务器端,查看post 了解将其反序列化回对象的方法。

    编辑:例如,这将使用单个参数“jsonData”发布到 handler.ashx。我使用 JSON.stringify 方法(JSON2 库的一部分)-

    $.ajax({
       url: "handler.ashx",
       type: "POST",
       data: ({jsonData : JSON.stringify(yourDataObject) }),
       success: function(msg){
          alert(msg);
       }
    });
    

    【讨论】:

    • 谢谢 - 你有 $.ajax 或 $.post 的例子,它将整个 json 对象作为单个字符串传递吗?我所有的尝试似乎都将对象作为一个巨大的表单数组传递,而不是作为单个表单值。谢谢。
    • 添加了一个示例,您是否已经构建了数据对象?如果你设置 data: JSON.stringify(yourDataObject) 那么它会将它分解成一大堆参数。您必须明确地将其设置为变量(即 jsonData)。
    【解决方案2】:

    您可以将 Javascript 对象序列化为 JSON 字符串,然后简单地将其作为参数传递。在服务器端,您将使用 JSON 解析器将其反序列化为可用的内容。

    在客户端上,真的没有“JSON 对象”这样的东西。它只是 Javascript(如果你挑剔的话,那就是 ECMAscript)。有现成的库可以进行序列化(参见 json.org)。

    【讨论】:

      猜你喜欢
      • 2011-01-31
      • 2017-03-02
      • 1970-01-01
      • 2020-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-13
      • 1970-01-01
      相关资源
      最近更新 更多