$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}}';
lesen sie mehr über 'JSON.parse' – Rayon