通过javascript解析像字符串的JSON

时间:2012-12-19 09:19:10

标签: javascript

我有这个变量,它是类似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”)就可以了,有没有办法处理这种情况?
感谢。

3 个答案:

答案 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
}