【问题标题】:How to parse JSON easily?如何轻松解析 JSON?
【发布时间】:2011-11-10 05:24:04
【问题描述】:

我有一些 JSON 编码的字符串,我需要轻松解析它们。任何想法如何做到这一点?我是 javaScript 的菜鸟,我自己做不到。我读到解析 json 真的很难。

请帮忙!

【问题讨论】:

标签: javascript json parsing


【解决方案1】:

JSON 是有效的 Javascript,所以你可以 eval() 它:

var data = eval(json);

不过使用JSON.parse()[docs] 会更安全,如果此功能可用:

var data = JSON.parse(json);

所以你可以这样做:

if (window.JSON) {
    data = JSON.parse(json);
} else {
    data = eval('('+json+')');
}

注意 eval() 中括号的使用。请参阅@CMS 的评论和this

您还可以使用现有的库,例如 this one(在没有它的浏览器上添加 JSON.parse)。

如果您使用的是 jQuery,请使用 $.parseJSON()[docs]

【讨论】:

  • 你也可以使用data = ((window.JSON&&JSON.parse)||eval)(json);,更简洁一些。
  • eval(json) 如果 json 字符串表示一个对象(例如 '{"foo":"bar"}')将不起作用,因为第一个花括号将被解释为语句 block 的开头,而不是对象字面量的开头,您应该这样做:eval('('+json+')'); 以强制将评估放入 表达式上下文See also。无论如何,另一种选择是使用Function 构造函数,IMO 更好,因为eval 使引擎优化更加困难,例如:Function('return '+json)();
【解决方案2】:

尝试查看http://www.json.org/js.html。你需要这样的东西:

var myObject = JSON.parse(myJSONtext, reviver);

【讨论】:

    【解决方案3】:

    JSON.parse() 在当今的大多数 Javascript 环境中都有定义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-19
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 2013-03-15
      • 1970-01-01
      相关资源
      最近更新 更多