2012-11-24 41 views
0

我想在客户端解析数据,我在序列化后将数据保存在输入字段中。在客户端通过javascript或Jquery解析Json数据

JavaScriptSerializer objJavaScriptSerializer = new JavaScriptSerializer(); 
string jsonString = objJavaScriptSerializer.Serialize(_statusVal); 
jsonFmtStatusValue.Value = jsonString; 

在客户端当我看到存储在输入字段中的数据串它的到来喜欢哪款我试图解析JSON数据这

[ 
    { 
     "nodeContentId": "1234_5678", 
     "statusTypeId": "5678", 
     "statusName": "Submitted by Customer", 
     "dateTime": "/Date(1352745000000)/", 
     "forceEmail": "on", 
     "user": { 
      "userId": "0", 
      "userName": "admin" 
     }, 
     "note": { 
      "typeName": null, 
      "dataValue": null 
     } 
    }, 
    { 
     "nodeContentId": "1234_5678", 
     "statusTypeId": "5678", 
     "statusName": "Checked, Printed, Folded & Re-checked", 
     "dateTime": "/Date(1353402060000)/", 
     "forceEmail": "on", 
     "user": { 
      "userId": "0", 
      "userName": "admin" 
     }, 
     "note": { 
      "typeName": null, 
      "dataValue": null 
     } 
    } 
] 

代码是:

var JsonData = $("#<%=jsonFmtStatusValue.ClientID %>").val(); 
    obj = jQuery.parseJSON(JsonData) 
    alert(obj.nodeContentId); 
我在警戒框中得到的东西:

无法弄清楚我应该用什么解析。

+0

@pst:他引述他的代码在解析,那部分没有问题。 –

回答

3

(注:我假设jsonFmtStatusValue最终是页面上的inputtextarea

在你alert(obj.nodeContentId);obj阵列,而不是对象数组。最外面的JSON实体是一个数组,它包含对象。

你可以看到第一nodeContentId这样的:

alert(obj[0].nodeContentId); 

...当然还有其它的是,在随后的指标,因此,例如:

var obj = jQuery.parseJSON(JsonData); 
var n; 
for (n = 0; n < obj.length; ++n) { 
    alert("obj[" + n + "].nodeContentId = " + obj[n].nodeContentId); 
}