У меня есть это:
JSON.parse('{"130.00000001":{"p_cod":"130.00000001","value":"130.00000001 HDD Upgrade to 2x 250GB HDD 2.5\" SATA2 7200rpm"}}');
JSONLint говорит, что это - совершенно допустимый json. Но на выполнении у меня есть a 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
.
Кто-то может помочь понять это поведение?
Это разница между форматом проводника и тем, что вы должны написать в своем коде, чтобы получить формат провода. Когда вы объявляете это в коде, вам нужен двойной - \ в вашем литерале, чтобы строка получила одну обратную косую черту (в противном случае она будет интерпретировать \ "как escape-последовательность для простого объявления" и поместить это в вашу строку). Если вы распечатаете значение литерала, вы увидите одну обратную косую черту.