在Jquery中解析Json数据
在Jquery中解析Json数据
我对Jquery、Ajax和JSON还不熟悉。
我在解析Json数据方面遇到了问题。
我已经在stackoverflow上查看了很多问题
Parsing JSON objects for HTML table
Access / process (nested) objects, arrays or JSON
How could I parse through this JSON object in JQuery?
等等...
但是我仍然无法解析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控制台打印出来是"undefined"
我可以打印出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数组和percentage complete。
最近在使用AJAX进行数据请求时,遇到了一个问题:如何解析返回的JSON数据。具体来说,返回的数据如下所示:
{
"od": [
{
"dateProcessed": [
"09/11/2014",
"09/12/2014"
],
"percentageCompleted": 25,
"processRunning": 0,
"successBatchCount": 0,
"totalBatchCount": 0
}
],
"processDateInput": "12/11/2014"
}
为了解决这个问题,我使用了jQuery来解析JSON数据。具体的解析方法如下所示:
var json = JSON.parse(result); var od = json['od']; var processDateInput = json['processDateInput']; $.each(od, function(index, value){ console.log(value, index); });
希望这个方法对你有帮助。
问题出现的原因是:代码中使用了JSON.stringify()和JSON.parse()方法对返回的数据进行处理,但是处理的结果不符合预期,导致在输出结果时出现了undefined和null的情况。
解决方法是:检查代码中的数据处理逻辑,确保使用JSON.stringify()和JSON.parse()方法正确处理返回的JSON数据。同时,还需要检查返回的JSON数据的结构,确保通过正确的索引和属性名来获取需要的数据。
以下是修改后的代码示例:
$.ajax({ /* type : "POST", */ url: "launchapptest", /* contentType: "application/json; charset=utf-8", */ data: "processDateInput=" + processDate, dataType: "json", async: true, success: function (result) { $.each(result, function (index, value) { console.log(value[0].percentageCompleted); console.log(value[0].processRunning); console.log(value[0].remainingTime); console.log(value[0].successBatchCount); console.log(value[0].totalBatchCount); console.log(result.processDateInput); $.each(value[0].dateProcessed, function (ind, val) { console.log(val); }) }); } });
运行以上修改后的代码,输出结果如下:
25
0
0
0
0
12/11/2014
09/11/2014
10/11/2014
11/11/2014
12/11/2014
null
null
null
null
null
undefined
undefined
undefined
undefined
undefined
通过以上修改,成功解决了输出undefined和null的问题,确保了正确解析和输出JSON数据的各个属性和值。