尝试解析来自 AWS SQS 的 JSON 内容。
首先将字符串转换为 JSON 字符串,然后再转换为 JSON 对象。处理这种情况的正确方法是什么?
<script>
// JSON from SQS
var x='{"Message":"{\"default\":{\\\"key1\\\":\\\"value1\\\",\\\"key2\\\":\\\"value2\\\"}\"}","Timestamp":"2018-03-20T03:21:32.136Z"}';
x1=JSON.stringify(x);
var obj = JSON.parse(x1);
console.log(obj.Message); // undefined
alert(obj["Message"]); // undefined
</script>
最佳答案
我完全不知道你为什么要尝试 JSON.stringify()
一个字符串。它已经是一个字符串了!
您获得的字符串也不是有效的 JSON,并且需要一些额外的 \\
。你从哪里得到它?或者是拼写错误。
var x='{"Message":"{\\\"default\\\":{\\\"key1\\\":\\\"value1\\\",\\\"key2\\\":\\\"value2\\\"}\\\"}","Timestamp":"2018-03-20T03:21:32.136Z"}';
^__________^_____________________________________________________________^
只需解析您所拥有的 JSON,然后就会意识到 obj.Message
只是更多的 JSON,可能是 JSON.parse()
d
// JSON
var x = '{"Message":"{\\\"default\\\":{\\\"key1\\\":\\\"value1\\\",\\\"key2\\\":\\\"value2\\\"}\\\"}","Timestamp":"2018-03-20T03:21:32.136Z"}';
//Parse JSON
var obj = JSON.parse(x);
console.log(obj.Message); // string formatted as yet more JSON
关于javascript - 使用 JSON.stringify 解析 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49394176/