JSON.parse представляют в виде строки с кавычками

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

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.

Кто-то может помочь понять это поведение?

13
задан Aᴍɪʀ 23 December 2015 в 07:08
поделиться

1 ответ

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

19
ответ дан 1 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: