我从服务器获取响应json字符串,如下所示:
$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
像这样在角模板页面中如何使用
$scope.text
:{{text.response.age}}
这是我的演示Demo
最佳答案
$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
这里的问题是这不是JSON。
通过它自己:
{"response":"{\"firstName\":\"John\",\"age\":454 }"}
…是JSON。
但是,一旦将其包装在JavaScript字符串文字中,
\
就会用作JavaScript字符串文字的转义字符,并在它出现在JSON中之前被消耗掉。生成嵌入在JS中的JSON时,您需要对JS中具有特殊含义的字符进行转义:
$scope.text = '{"response":"{\\"firstName\\":\\"John\\",\\"age\\":454 }\"}';
重新设计您的数据结构也是一个好主意,这样您的JSON首先就不会包含JSON字符串:
$scope.text = '{"response": {"firstName":"John","age":454}}';