如何从JavaScript中的JSON获取数据?

如何从JavaScript中的JSON获取数据?,javascript,json,Javascript,Json,我有一个JSON,我需要从中获取'pk'和'cnt'的值: [{ "ip": "[{"pk": "173.194.44.23", "model": "link_finder.ip", "fields": {"cnt": 3}}, {"pk": "173.194.44.24", "model": "link_finder.ip", "fields": {"cnt": 3}}]", "

我有一个JSON,我需要从中获取'pk'和'cnt'的值:

[{
  "ip": "[{"pk": "173.194.44.23",
           "model": "link_finder.ip",
           "fields": {"cnt": 3}},
          {"pk": "173.194.44.24",
           "model": "link_finder.ip",
           "fields": {"cnt": 3}}]",
  "urls": "[{"pk": "http:\\google.com\advanced_search?hl=uk&authuser=0",
             "model": "link_finder.url",
             "fields": {"cnt": 2}},
            {"pk": "http:\\google.com\intl\uk\about.html",
             "model": "link_finder.url",
             "fields": {"cnt": 2}}]"
}]

我知道如何将其放入数组中,但如何获得,例如,第一段和第二段中的pk和cnt值

已更新,因为代码已更改:

123.104.44.23 159
171.154.44.24 159
172.194.34.31 159
如果对象名为
ip
,则:

data[0].ip[0].pk
data[0].ip[0].fields.cnt
data[1].ip[1].pk
data[1].ip[1].fields.cnt
原始答案

您缺少将其作为有效JSON的数组括号

还假设您从某种Ajax-y东西中获得这个JSON,并且它在一个名为“data”的对象中发回JSON

如果有数组括号,则语法为:

data[0].pk //123.104.44.23
data[0].fields.cnt // 159


data[1].pk //171.154.44.24
data[1].fields.cnt // 159

这将在Javascript中实现,尽管从语法上看,Python也可以使用。

由于代码更改而更新:

123.104.44.23 159
171.154.44.24 159
172.194.34.31 159
如果对象名为
ip
,则:

data[0].ip[0].pk
data[0].ip[0].fields.cnt
data[1].ip[1].pk
data[1].ip[1].fields.cnt
原始答案

您缺少将其作为有效JSON的数组括号

还假设您从某种Ajax-y东西中获得这个JSON,并且它在一个名为“data”的对象中发回JSON

如果有数组括号,则语法为:

data[0].pk //123.104.44.23
data[0].fields.cnt // 159


data[1].pk //171.154.44.24
data[1].fields.cnt // 159
这将在Javascript中实现,不过看看语法是否也适用于Python。

检查下一段代码

var json = {};
json =  [{"pk": "123.104.44.23",
  "model": "link_finder.ip",
  "fields": {"cnt": 159}},
 {"pk": "171.154.44.24",
  "model": "link_finder.ip",
  "fields": {"cnt": 159}},
 {"pk": "172.194.34.31",
  "model": "link_finder.ip",
  "fields": {"cnt": 159}}]; 
for (var key in json){ console.log(json[key].pk + ' ' + json[key].fields.cnt)}
结果:

123.104.44.23 159
171.154.44.24 159
172.194.34.31 159
检查下一个代码

var json = {};
json =  [{"pk": "123.104.44.23",
  "model": "link_finder.ip",
  "fields": {"cnt": 159}},
 {"pk": "171.154.44.24",
  "model": "link_finder.ip",
  "fields": {"cnt": 159}},
 {"pk": "172.194.34.31",
  "model": "link_finder.ip",
  "fields": {"cnt": 159}}]; 
for (var key in json){ console.log(json[key].pk + ' ' + json[key].fields.cnt)}
结果:

123.104.44.23 159
171.154.44.24 159
172.194.34.31 159

@user3156971我希望这有助于您理解从JSON对象获取数据的基础知识。这是非常基本的东西,如果你有更多的问题,你应该在这里发表评论data@user3156971我根据显示的JSON更新了答案。@user3156971我希望这有助于您理解从JSON对象获取数据的基础知识。这是非常基本的东西,如果你有更多的问题,你应该在这里发表评论data@user3156971我根据显示的JSON更新了我的答案。