将字符串转换为JSON对象

时间:2012-02-06 18:08:43

标签: jquery json

如何将字符串转换为对象?我正面临这个问题,因为我试图使用“each”读取JSON字符串中的元素。

我的字符串如下。

jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"

我使用了eval,我使用了

var obj = $.parseJSON(jsonObj);

我也用过

var obj= eval("(" + jsonObj + ")");

但它一直都是空的

7 个答案:

答案 0 :(得分:61)

将字符串括在单引号中应该有效。试试这个。

var jsonObj = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}';
var obj = $.parseJSON(jsonObj);

<强> Demo

答案 1 :(得分:17)

Saurabh Chandra Patel&#39; answerMolecular Man&#39; observation结合起来,你应该有这样的结论:

JSON.parse('{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}');

答案 2 :(得分:11)

尝试:

var myjson = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}';
var newJ= $.parseJSON(myjson);
    alert(newJ.TeamList[0].teamname);

答案 3 :(得分:4)

您的字符串无效。双引号不能在双引号内。你应该逃避他们:

"{\"TeamList\" : [{\"teamid\" : \"1\",\"teamname\" : \"Barcelona\"}]}"

或使用单引号和双引号

'{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}'

答案 4 :(得分:4)

仅限js

   JSON.parse(jsonObj);

reference

答案 5 :(得分:3)

快速回答,这个评估工作:

eval('var obj = {"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}')

答案 6 :(得分:0)

无评估:

您的原始字符串不是实际的字符串。

jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"

用单引号将所有内容括起来的最简单方法。

 jsonObj = '"{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"'

然后,您可以结合两个步骤将其解析为JSON:

 $.parseJSON(jsonObj.slice(1,-1))