2016-03-22 6 views
0

Ich habe eine Zeichenfolge im JSON-Format. Ich versuche es zu wiederholen. Ich habe die Zeichenfolge überprüft, ob JSON oder nicht. Es ist in Ordnung. Aber wenn ich versuche, es zu iterieren, wirft es mich Fehler.Nicht in der Lage, Zeichenfolge in JSON in Javascript zu konvertieren

Hier ist meine

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":"{\"color\": \"blue\",\"value\": \"#f00\"}"},{"id":8,"userId":"123","courseId":"C5","courseValue":"{\"color\": \"green\",\"value\": \"#f00\"}"}]'; 

Hier ist die Geige

http://jsfiddle.net/hLkUz/40/

Antwort

0

Sie in Werten unerwünschten Doppel-String haben. Korrigierte json String ist hier

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{\"color\": \"blue\",\"value\": \"#f00\"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{\"color\": \"green\",\"value\": \"#f00\"}}]'; 
+0

Hey Sridhar, Was war das Problem? – Syed

+0

Sie KursWert in doppelte Anführungszeichen einschließen, die nicht erforderlich ist. Ich entfernte doppelte Anführungszeichen in courseValue heißt „courseValue“: {\ „color \“ statt „courseValue“: „{\“ color \ „... –

+0

Sie mich es zu schlagen, ich damit beschäftigt war, die nicht benötigte Flucht zu entfernen“. –

1

Sie einige JSON genommen haben und wickelte ' um es zu versuchen, es ein JavaScript Stringliteral zu machen.

Einige Zeichen haben in JavaScript-Stringliteralen eine besondere Bedeutung (z. B. \, die eine Escape-Sequenz startet). Sie haben es nicht geschafft, ihnen innerhalb der Zeichenfolge zu entkommen.

Folglich ein Beispiel zu nehmen:

"{\"color\":… 

... wenn sie als Teil des Strings JavaScript analysiert wörtliche wird:

"{"color":… 

..., die nicht gültig JSON ist.

Sie müssen die Sonderzeichen für das JavaScript-String-Literal umgehen.

Noch besser, restrukturieren Sie Ihren JSON so, dass er keine Werte enthält, die als JSON selbst codiert sind. Verwenden Sie ein Objekt anstelle einer Zeichenfolge, die JSON als Objekt enthält.

+0

Was soll ich mit diesem String jetzt tun? Ich bekomme das gleiche JSON-Objekt zu meinem Client – Syed

+0

Was wäre die korrekte Struktur dieser Zeichenfolge? – Syed

-1

Ich bin mir nicht sicher, ob Sie beabsichtigen, die JSON innerhalb von KursWert zu entkommen. Es scheint jedoch, als wäre das Entweichen der verschachtelten Objekte das Problem. Dies funktioniert http://jsbin.com/mekiwalidu/edit?js,console,output

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{"color": "blue","value": "#f00"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{"color": "green","value": "#f00"}}]'; 

var obj = JSON.parse(string); 
console.log(obj); 
+1

Bitte geben Sie hier den Code ein, um das Downvoting zu vermeiden. Links gehen veraltet – mplungjan

0

Try this:

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{"color": "blue","value": "#f00"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{"color": "green","value": "#f00"}}]'; 
0

Es gibt keine Notwendigkeit, das Objekt mit " noch zu entkommen, es zu wickeln.

Was Sie brauchen, ist dies:

var string = '[{"id":7,"userId":"123","courseId":"C4","courseValue":{"color": "blue","value": "#f00"}},{"id":8,"userId":"123","courseId":"C5","courseValue":{"color": "green","value": "#f00"}}]'; 

Fiddle

Verwandte Themen