获取JSON中的属性值

时间:2017-10-17 08:18:27

标签: javascript json

我试图隔离"ip"对象的JSON属性。获取JSON对象的代码是

var parsed;
$.getJSON('//jsonip.com/?callback=?', function(data) {
    parsed = JSON.stringify(data, null, 2);
    console.log(parsed);
});

它返回此JSON对象。

{
  "ip": "118.210.141.127",
  "about": "/about",
  "Pro!": "http://getjsonip.com",
  "reject-fascism": "Women make their own choices. Support abortion rights."
}

由于某种原因,parsed.ip返回undefined,而不是"118.210.141.127"如何正确访问ip值?

2 个答案:

答案 0 :(得分:2)

parsed = JSON.stringify(data, null, 2);

JSON.stringify执行解析数据的 oposite 。它将JS数据结构转换为JSON,而不是相反。然后,parsed.ip将字符串读取字符串ip属性,而不是已解析的对象。

getJSON会自动为您解析JSON。所以不要乱用它。

$.getJSON('//jsonip.com/?callback=?', function(data) {
    console.log(data.ip);
});

您可能还需要从网址中删除?callback=?。当您期望JSONP响应而不是JSON响应时使用它。

答案 1 :(得分:1)

使用:

$.getJSON('//jsonip.com/?callback=?', function(data) {
    console.log(data.ip); // should output 118.210.141.127
});

当您调用jQuery.getJSON()时,最终将使用已解析的JavaScript对象而不是JSON字符串执行成功函数。

因此,当您执行JSON.stringify(data, null, 2)时,您将JavaScript对象转换回JSON字符串。