【问题标题】:How to read multi-level Json data by using jQuery?如何使用jQuery读取多级Json数据?
【发布时间】:2009-01-19 08:32:49
【问题描述】:

这是我的 Json 数据:

[{"ok" : false,
  "details" : [{"n" : "Email",
                "v" : "The email address you entered is not correct."},
               {"n" : "NameFull",
                "v" : "Please enter your full name."}]
 }]

我发现读取单级 Json 数据非常容易,但是对于像上面这样的多级数据,我无法通过搜索互联网找到答案。我只想阅读上述值。就像从“详细信息”下的“n”和“v”读取值。

【问题讨论】:

  • 你能把它改成源代码吗?
  • Json 数据已经处于源代码模式,但是 StackOverflow 可能无法高亮 Json 文本。
  • 它看起来也应该很漂亮:)
  • 这真的很酷!谢谢! ;o)

标签: jquery json


【解决方案1】:

数据在数组中

注意数据周围的方括号。您必须在上述数据集中对数组进行索引。

这应该让您访问电子邮件值:

var json = '[{"ok":false,"details":[{"n":"Email","v":"The email address you entered is not correct."},{"n":"NameFull","v":"Please enter your full name."}]}]';

var k = eval( json );

alert( k[0].details[0].v );

这是出现的警告文本:

The email address you entered is not correct.

也许您的 JSON 源将它放在一个数组中,因为它们想要返回多个元素?

实际上,您不需要 jQuery。 JSON 代表 JavaScript 对象表示法。这基本上意味着它是一个 Javascript 代码块,可以直接在 JavaScript 中按原样评估以获取序列化数据,在您的情况下,它恰好是一个数组。

【讨论】:

  • 谢谢!有用!我是超级新手,你的意思是我提供的Json数据不是标准的Json吗?再次感谢!!!
  • 这是一个标准的 JSON,它只是在一个数组中。
【解决方案2】:

抱歉,我可能不明白你的问题。这对你不起作用?

var data = eval('(' + strJson + ')');

【讨论】:

  • 抱歉造成误解,我想使用jQuery从上面的Json文本中读取一些特定的键和值。
  • silent200:你需要的是 jQuery.getJSON(),它会从某个地方获取一个 json 并为你做 eval。您不需要 jquery 来处理 json,支持“内置”在 javascript 中。
  • silent200:轮到我道歉了。我以为您知道 eval() 函数将您的 JSON 编码字符串转换为具有属性和索引器的普通 JavaScript 对象。我当然必须清楚地解释这一点:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-25
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 2014-05-07
相关资源
最近更新 更多