2014-01-08 126 views
1

這個JSON是由填充了DataSet對象的ASP.NET字典和Newtonsoft解析器創建的。我如何使用Jquery解析客戶端?如何使用Jquery解析嵌套的json對象

或者,有沒有更好的方法來對我的數據集進行分析?

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

whay你想用它嗎?你想如何存儲它? – lealam

+0

我想迭代json對象並讀取每個對象節點下的某些值。然後,我打算將json字符串存儲在具有localstorage的客戶端上。 –

回答

0

兩件事返回。

  1. 使用Jquery的.parseJSON()方法。

http://api.jquery.com/jquery.parsejson/

var parsedJsonObject = jQuery.parseJSON(yourJSONResponseFromServer); 
  1. 更改您的JSON從服務器的輸出到這個樣子。請注意,最外層元素不是由{}定義的單個巨量JSON對象,而是一組匿名對象[]。
[ 
    { 
     "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]; 
} 
+1

我接受了您的建議,並將我的設計從使用數據集更改爲使用Dictionary對象中的數據表。這給我命名的主節點,我可以輕鬆地迭代。我認爲從複雜的對象模型創建json格式的字符串比做相反的事情更容易,所以我會盡可能地簡單。 –

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 

} 
} 
0

使用JSON.parse()來

例如

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

其中 '數據' 爲XML /文本經由AJAX請求

+0

但是,我如何遍歷解析的對象? –