Преобразовать строку в объект 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"}]}'

Только с JS

   JSON.parse(jsonObj);

ссылка

Быстрый ответ, это работа 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))
Другие вопросы по тегам