2016-07-04 11 views

Antwort

2
$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}'; 

Das Problem hier ist, dass dies nicht JSON ist.

von selbst:

{"response":"{\"firstName\":\"John\",\"age\":454 }"} 

... ist JSON.

Sobald Sie es jedoch in ein JavaScript-String-Literal umbrechen, wird \ als Escape-Zeichen für das JavaScript-String-Literal verwendet und verbraucht, bevor es in JSON angezeigt werden kann.

Wenn Sie JSON in JS eingebettet erzeugen, müssen Sie die Zeichen mit besonderer Bedeutung in JS entkommen:

$scope.text = '{"response":"{\\"firstName\\":\\"John\\",\\"age\\":454 }\"}'; 

Es wäre auch eine gute Idee, Ihre Datenstruktur neu zu gestalten, so dass Ihre JSON nicht der Fall ist enthalten Strings von JSON in erster Linie:

$scope.text = '{"response": {"firstName":"John","age":454}}'; 
+0

Danke, aber wie man wandeln es in JavaScript-Objekt. Ich habe eine Demoseite hinzugefügt. Was soll ich machen? –

+0

@Ehsan - Sie müssen die Eingabe reparieren (um es JSON zu machen) wie ich beschrieben habe und gab ein Beispiel von. Sie können JSON.parse darauf anwenden. – Quentin

+0

Ich kann die Antwort vom Server –

Verwandte Themen