【问题标题】:How to Parse JSON Object/Array in Ajax如何在 Ajax 中解析 JSON 对象/数组
【发布时间】:2012-07-21 07:36:57
【问题描述】:

我将如何从我的网络服务获取此 json 中更新的值:

{"listener":{"id":"1","updated":"false"}}

这是我尝试过的:

$.ajax({
       ...
        success : function(data) {            
            console.log("received listener: " + data);            
            var received = JSON.parse(JSON.stringify(data));                              
            var listener = received.listener;  
            var length = listener.length;
            //alert('returned json' + data + ' no. of products received: ' + length);
            console.log('returned json' + listener + ' no. of listener received: ' + length); //it says undefined for the length

            var updated = listener[0].updated;

        }
    });

谢谢。

【问题讨论】:

  • JSON.parse(JSON.stringify(data)); :o
  • 另外,对象没有长度属性。你的 bug 到底是什么?
  • 我想获取 updated 的值为 false。
  • 我明白了,就像哈米什说的那样。 listener.updated

标签: ajax json jsonp arrays


【解决方案1】:

首先,这行没有意义:

var received = JSON.parse(JSON.stringify(data));    

JSON.stringifyJSON 结构转换为字符串,而JSON.parse 则相反。换句话说:

var received = data.listener; // is equivalent.

其次,received 是一个对象

{"id":"1","updated":"false"}

它不是一个数组,所以它没有length 属性。如果您想获得received 对象的id,那么您显然会使用:

var updated = listener.id;

要使您的代码工作 data 必须如下所示:

{"listener":[{"id":"1","updated":"false"}]}

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 2019-01-14
    • 2011-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    相关资源
    最近更新 更多