我从服务器获取响应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}}';

09-30 16:28
查看更多