在Jquery中解析Json数据

我是Jquery,Ajax和JSON的新手。 我面临着解析Json数据的问题。 我在stackoverflow上遇到了很多问题

解析HTML表的JSON对象

访问/处理(嵌套)对象,数组或JSON

在JavaScript中解析JSON?

我怎么能在JQuery中解析这个JSON对象?

还有很多…

我仍然无法解析Json数据。

我的Jquery看起来像:

$.ajax({ /* type : "POST", */ url : "launchapptest", /* contentType: "application/json; charset=utf-8", */ data : "processDateInput="+processDate, dataType : "json", async: true, success : function(result) { var od = JSON.stringify(result) ; var obj = JSON.parse(od); console.log(obj.od); console.log(obj.od.percentageCompleted); console.log(od); $.each(JSON.parse(od), function(idx, obj) { console.log(obj.tagName); }); } }); 

我已经尝试了所有组合来解析这些数据,但是js控制台打印为“未定义”

我能够将json对象打印为:

 { "od": [ { "dateProcessed": [ "09/11/2014", "10/11/2014", "11/11/2014", "12/11/2014" ], "percentageCompleted": 25, "processRunning": 0, "remainingTime": 0, "successBatchCount": 0, "totalBatchCount": 0 } ], "processDateInput": "12/11/2014" } 

请帮助我如何获取dateProcessed数组和百分比完成。

 Try this code. $.ajax({ /* type : "POST", */ url: "launchapptest", /* contentType: "application/json; charset=utf-8", */ data: "processDateInput=" + processDate, dataType: "json", async: true, success: function (result) { var od = JSON.stringify(result); var obj = JSON.parse(od); $.each(obj, function (index, value) { console.log(obj[index][0].percentageCompleted); console.log(obj[index][0].processRunning); console.log(obj[index][0].remainingTime); console.log(obj[index][0].successBatchCount); console.log(obj[index][0].totalBatchCount); console.log(obj.processDateInput); $.each(obj[index][0].dateProcessed, function (ind, val) { console.log(val); }) }); } }); 

当您将dataType指定为JSON时,jQuery将自动为您解析它。 再次解析它(多次,偶数)将导致问题。 试试这个:

 success: function(result) { console.log(result.od); console.log(result.od[0].percentageCompleted); } 

我不完全确定你的$.each循环试图做什么,因为你的对象中没有tagName属性。

AJAX调用的返回数据是什么?

就像这样

 { "od": [ { "dateProcessed": [ "09/11/2014", "09/12/2014" ], "percentageCompleted": 25, "processRunning": 0, "successBatchCount": 0, "totalBatchCount": 0 } ], "processDateInput": "12/11/2014" } 

你可以像这样解析它

 var json = JSON.parse(result); var od = json['od']; var processDateInput = json['processDateInput']; $.each(od, function(index, value){ console.log(value, index); }); 

希望它会对你有用。

不需要解析它,因为你已经提到它为json你可以这样做:

  success: function(result) { console.log(result.od); console.log(result.od[0].percentageCompleted); console.log(od); $.each(result, function(idx, obj) { console.log(obj[0].dateProcessed); }); }