如何从JavaScript中获取JSON数据?

时间:2014-02-11 15:33:28

标签: 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}}]",
  "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 walues?

2 个答案:

答案 0 :(得分:3)

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

如果对象名为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。

答案 1 :(得分:1)

检查下一个代码。

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