如何使用Jquery解析嵌套的json对象

时间:2014-01-08 05:37:17

标签: jquery asp.net json

此JSON是使用Newtonsoft解析器从填充了DataSet对象的ASP.NET字典创建的。如何使用Jquery在客户端上解析它?

或者,有没有更好的方法来对我的数据集进行jsonize?

{
    "Object1": {
        "Table": [
            {
                "somekey": "b"
            }
        ]
    },
    "Object2": {
        "Table": [
            {
                "somekey": "880",
                "somekey": "x"
            },
            {
                "somekey": "88"
            }
        ]
    }
}

3 个答案:

答案 0 :(得分:0)

var array=[];

for(var i=0;i<json.length;i++)//json is the object from server
{//object in Dictionary
array.push(json[i]);//push any object to array
//if you want run any table
for(var j=0;j<json[i].length;j++)
{//table in object

var table =json[i][j]//table

}
}

答案 1 :(得分:0)

使用JSON.parse()

e.g。

JSON.parse(jQuery(data).text());

其中'data'是通过AJAX请求返回的xml / text

答案 2 :(得分:0)

两件事。

  1. 使用Jquery的.parseJSON()方法。
  2. http://api.jquery.com/jquery.parsejson/

    var parsedJsonObject = jQuery.parseJSON(yourJSONResponseFromServer);
    
    1. 将JSON的输出从服务器更改为如下所示。请注意,最外层元素不是由{}定义的单个大型JSON对象,而是一个匿名对象数组[]。
    2. [
          {
              "Table": [
                  {
                      "somekey": "b"
                  }
              ]
          },
          {
              "Table": [
                  {
                      "somekey": "880",
                      "somekey": "x"
                  },
                  {
                      "somekey": "88"
                  }
              ]
          }
      ]
      

      以前你必须这样做。

      var parsedJsonObject = jQuery.parseJSON(yourJSONResponseFromServer);
      
      parsedJsonObject.Object1.table[indexYouWantToAccess];
      parsedJsonObject.Object2.table[indexYouWantToAccess];
      parsedJsonObject.Object3.table[indexYouWantToAccess];
      

      但是如果你用外面的[]重新格式化它就可以做到这一点。

      var parsedJsonObject = jQuery.parseJSON(yourJSONResponseFromServer);
      
      for (var i=0; i < parsedJsonObject.length; i++) {
          parsedJsonObject[i].table[indexYouWantToAccess];
      }