我有这个变量,它是类似json的字符串,在解析对象时会出现错误
"SyntaxError: JSON.parse: expected ',' or '}' after property value in object"
代码:
var obj = JSON.parse('{"data":[{"from":"{\"category\":\"Bank/financial institution\"}"}],"statusCode":200}');
似乎嵌套"{\"category\":\"Bank/financial institution\"}"
不可用的功能,用简单文本替换(例如“123”)就可以了,有没有办法处理这种情况?
感谢。
答案 0 :(得分:3)
\
之前的"category
(反斜杠)字符是不必要的。
没有必要在单引号字符串中转义双引号。
答案 1 :(得分:2)
你的字符串确实格式不正确。
你要么:
var obj = JSON.parse('{"data":[{"from":{"category":"Bank/financial institution"}}],"statusCode":200}');
...(例如,没有围绕from
且没有反斜杠的值的引号),当反序列化时会导致一个对象具有一个名为data
的属性,该属性是一个数组,其中包含第一个输入一个名为from
的属性的对象,该属性是对象:Live Example | Source
或
var obj = JSON.parse('{"data":[{"from":"{\\"category\\":\\"Bank/financial institution\\"}"}],"statusCode":200}');
...(例如,保持引号围绕from
的值并确保反斜杠显示在JSON中,这意味着转义它们),直到到达from
为止,这是一个字符串:Live Example | Source
答案 2 :(得分:1)
删除内部对象的引号
var obj = {
"data": [{
"from": {
"category": "Bank/financial institution"
}
}],
"statusCode": 200
}