1

私は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") に置き換えても問題ありません。そのような場合を処理する方法はありますか?
ありがとう。

4

3 に答える 3

3

前の\(バックスラッシュ)文字"categoryは不要です。

一重引用符で囲まれた文字列で二重引用符をエスケープする必要はありません。

于 2012-12-19T09:21:49.427 に答える
2

あなたの文字列は確かに不正です。

次のいずれかが必要です。

var obj = JSON.parse('{"data":[{"from":{"category":"Bank/financial institution"}}],"statusCode":200}');

...(たとえば、値を引用符で囲み、fromバックスラッシュなしで)これは、逆シリアル化されるdataと、配列であるというプロパティを持つオブジェクトになり、最初のエントリとしてオブジェクトであるというプロパティを持つfromオブジェクトなります:Live例| ソース

また

var obj = JSON.parse('{"data":[{"from":"{\\"category\\":\\"Bank/financial institution\\"}"}],"statusCode":200}');

...(たとえば、の値を引用符でfrom囲み、バックスラッシュが JSON に表示されるようにする、つまりエスケープすることを意味します)これは、文字列である に到達するfromまで同じですソース

于 2012-12-19T09:25:56.130 に答える
1

内部オブジェクトの引用符を削除

var obj = {
    "data": [{
        "from": {
            "category": "Bank/financial institution"
         }
     }],
     "statusCode": 200
}
于 2012-12-19T09:24:07.770 に答える