在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); }); }