2012-02-06 25 views
27

Jak przekonwertować ciąg na obiekt? Mam do czynienia z tym problemem, ponieważ próbuję odczytać elementy w ciągu JSON przy użyciu "każdy".Konwertuj ciąg na JSON Obiekt

Mój ciąg jest podany poniżej.

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

Użyłem eval i użyłem

var obj = $.parseJSON(jsonObj); 

i mam również wykorzystywane

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

Ale chodzi zerowy cały czas

+1

próbowałeś apostrofów? ''{" TeamList ": [{" teamid ":" 1 "," teamname ":" Barcelona "}]}'' –

+1

eval działa dla mnie –

+0

możliwy duplikat http://stackoverflow.com/questions/45015/safely -tending-a-json-string-into-an-object? rq = 1 –

Odpowiedz

59

ująć ciąg w pojedynczym cytuj to powinno działać. Spróbuj tego.

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

Demo

4

ciąg nie jest poprawny. Podwójne quoty nie mogą znajdować się w podwójnych cudzysłowach. Należy od nich uciec:

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

lub użyj apostrofów i cudzysłowów

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

Szybka odpowiedź, ta praca eval:

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

try:

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

Dziękuję bardzo za Twój kod '$ .parseJSON (myjson)'. To naprawdę działa. –