代码之家  ›  专栏  ›  技术社区  ›  Denis Hoctor

如何将接收到的JSON对象正确解释为字符串?

  •  2
  • Denis Hoctor  · 技术社区  · 14 年前

    http://www.ireland.com/api/getitemweb/185213
    上面url的响应中的CustomJsonData就是一个例子。

    我以为“邪恶的”eval()可以做到,但运气不好。

    谢谢,

    3 回复  |  直到 14 年前
        1
  •  6
  •   Robert Brown    13 年前

    如果使用eval,则需要在eval之前向字符串中添加(and):

    var parsedObject = eval("(" + jsonString + ")");
    

    但是,正如您所说,eval是邪恶的,使用jquery中的parseJson更好(不需要额外的paren):

    var parsedObject = Jquery.parseJSON(jsonString);
    

    http://api.jquery.com/jQuery.parseJSON/

        2
  •  4
  •   Chris Laplante    14 年前

    使用Douglas Crockford的实现: https://github.com/douglascrockford/JSON-js/blob/master/json2.js

    例子:

    var obj = JSON.parse(aJsonString);
    

    它处理嵌套的数组、对象等。

        3
  •  0
  •   Casey Chu    14 年前

    您必须解析数据两次——一次解析整个API JSON字符串,一次解析自定义JSON字符串。

    function parseJSON(data) {
        return JSON ? JSON.parse(data) : eval('(' + data + ')');
    }
    
    var data = parseJSON(apiStr);
    var custom = parseJSON(data.CustomJsonData);