如何将字符串转换为对象?我正面临这个问题,因为我试图使用“each”读取JSON字符串中的元素。
我的字符串如下。
jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"
我使用了eval
,我使用了
var obj = $.parseJSON(jsonObj);
我也用过
var obj= eval("(" + jsonObj + ")");
但它一直都是空的
答案 0 :(得分:61)
将字符串括在单引号中应该有效。试试这个。
var jsonObj = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}';
var obj = $.parseJSON(jsonObj);
<强> Demo 强>
答案 1 :(得分:17)
将Saurabh Chandra Patel&#39; answer与Molecular 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)
答案 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))