如何将带双引号反斜杠的JSON字符串转换为Javascript对象

如何将带双引号反斜杠的JSON字符串转换为Javascript对象,javascript,angularjs,json,object,backslash,Javascript,Angularjs,Json,Object,Backslash,我从服务器获取响应json字符串,如下所示: $scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}'; {{text.response.age}} 如何在角度模板页面中使用$scope.text,如下所示: $scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}'; {{text.response.age}} 这是我的演示 这里

我从服务器获取响应json字符串,如下所示:

$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
{{text.response.age}}
如何在角度模板页面中使用
$scope.text
,如下所示:

$scope.text = '{"response":"{\"firstName\":\"John\",\"age\":454 }"}';
{{text.response.age}}
这是我的演示

这里的问题是,这不是JSON

就其本身而言:

{"response":"{\"firstName\":\"John\",\"age\":454 }"}
…是JSON

但是,一旦将其包装为JavaScript字符串文本,
\
将用作JavaScript字符串文本的转义字符,并在它出现在JSON中之前被使用

生成JSON嵌入JS时,需要对JS中具有特殊含义的字符进行转义:

$scope.text = '{"response":"{\\"firstName\\":\\"John\\",\\"age\\":454 }\"}';
重新设计您的数据结构也是一个好主意,这样您的JSON一开始就不包含JSON字符串:

$scope.text = '{"response": {"firstName":"John","age":454}}';
这里的问题是,这不是JSON

就其本身而言:

{"response":"{\"firstName\":\"John\",\"age\":454 }"}
…是JSON

但是,一旦将其包装为JavaScript字符串文本,
\
将用作JavaScript字符串文本的转义字符,并在它出现在JSON中之前被使用

生成JSON嵌入JS时,需要对JS中具有特殊含义的字符进行转义:

$scope.text = '{"response":"{\\"firstName\\":\\"John\\",\\"age\\":454 }\"}';
重新设计您的数据结构也是一个好主意,这样您的JSON一开始就不包含JSON字符串:

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

阅读
JSON.parse
阅读
JSON.parse
谢谢,但是如何将其转换为javascript对象。我添加了一个演示页面。我该怎么办?@Ehsan-您需要修复输入(使其成为JSON),正如我所描述的,并给出了一个示例。您可以对其应用JSON.parse。我无法更改从服务器获得的响应。然后,在解析之前,您需要以编程方式尝试修复其中的错误。祝你好运。谢谢,但是如何将其转换为javascript对象。我添加了一个演示页面。我该怎么办?@Ehsan-您需要修复输入(使其成为JSON),正如我所描述的,并给出了一个示例。您可以对其应用JSON.parse。我无法更改从服务器获得的响应。然后,在解析之前,您需要以编程方式尝试修复其中的错误。祝你好运