Преобразовать строку в объект JSON
Как мне преобразовать строку в объект? Я сталкиваюсь с этой проблемой, потому что я пытаюсь прочитать элементы в строке JSON, используя "каждый".
Моя строка приведена ниже.
jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"
я использовал eval
и я использовал
var obj = $.parseJSON(jsonObj);
И я также использовал
var obj= eval("(" + jsonObj + ")");
Но это все время обнуляется
6 ответов
Заключите строку в одинарные кавычки, это должно работать. Попробуй это.
var jsonObj = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}';
var obj = $.parseJSON(jsonObj);
Комбинируя ответ Saurabh Chandra Patel с наблюдением Molecular Man, вы должны иметь что-то вроде этого:
JSON.parse('{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}');
Пытаться:
var myjson = '{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}';
var newJ= $.parseJSON(myjson);
alert(newJ.TeamList[0].teamname);
Ваша строка недействительна. Двойные кавычки не могут быть внутри двойных кавычек. Вы должны избежать их:
"{\"TeamList\" : [{\"teamid\" : \"1\",\"teamname\" : \"Barcelona\"}]}"
или используйте одинарные и двойные кавычки
'{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}'
Быстрый ответ, это работа eval:
eval('var obj = {"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}')
Без eval:
Ваша исходная строка не была настоящей строкой.
jsonObj = "{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"
Самый простой способ заключить все в одну кавычку.
jsonObj = '"{"TeamList" : [{"teamid" : "1","teamname" : "Barcelona"}]}"'
Затем вы можете объединить два шага, чтобы преобразовать его в JSON:
$.parseJSON(jsonObj.slice(1,-1))