在Jquery中解析Json数据

34 浏览
0 Comments

在Jquery中解析Json数据

我对Jquery、Ajax和JSON还不熟悉。

我在解析Json数据方面遇到了问题。

我已经在stackoverflow上查看了很多问题

Parsing JSON objects for HTML table

Access / process (nested) objects, arrays or JSON

Parse JSON in JavaScript?

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。

0
0 Comments

最近在使用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);
});

希望这个方法对你有帮助。

0
0 Comments

问题出现的原因是:代码中使用了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数据的各个属性和值。

0
0 Comments

问题出现的原因是因为在指定了dataType为JSON后,jQuery会自动为我们解析JSON数据,而重复解析会导致问题。解决方法是将解析JSON数据的代码去掉,直接使用jQuery解析后的结果即可。

代码示例:

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

关于你的`$.each`循环,我不确定它的目的是什么,因为你的对象中没有`tagName`属性。

0