JSON.parse строка с кавычками - PullRequest
12 голосов
/ 18 июня 2010

У меня есть это:

JSON.parse('{"130.00000001":{"p_cod":"130.00000001","value":"130.00000001 HDD Upgrade to 2x 250GB HDD 2.5\" SATA2 7200rpm"}}');

JSONLint говорит, что это вполне допустимый JSON.Но при выполнении у меня возникает ошибка JSON.parse.

Но, если я изменю свой код на:

    JSON.parse('{"130.00000001":{"p_cod":"130.00000001","value":"130.00000001 HDD Upgrade to 2x 250GB HDD 2.5\\" SATA2 7200rpm"}}');

(обратите внимание на двойной обратный слеш)

Это работает,но теперь JSONLint говорит: invalid json.

Может ли кто-нибудь помочь понять это поведение?

1 Ответ

19 голосов
/ 18 июня 2010

Это разница между форматом проводов и тем, что вы должны написать в своем коде, чтобы получить формат проводов.Когда вы объявляете это в коде, вам нужен двойной символ \ в вашем литерале, чтобы строка получала одну обратную косую черту (в противном случае она будет интерпретироваться как "escape-последовательность для простого объявления" и помещать это в вашу строку).Если вы распечатаете значение литерала, вы увидите одну обратную косую черту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...