Інструменти розробника · JSON форматування & реаніматор
JSON string Escapes пояснив: \n, \uXXXX і контроль символів
· Як працює
Опубліковано ToolAcre · Редакція журналу
свінгери розробник-workflow введення

Сира нова лінія всередині JSON рядок недійсний, і так є вкладкою. Ця пошта охоплює вісім послідовностей втечу, як \u втечу і сурогатних пар, і чому задана абзац може недійсним цілого файлу.
Пункт, який зламав навантаження
Пабзац, який зламав навантаження, — переклав видиму лінію перерву в процитований опис, вставляє характер управління безпосередньо в JSON рядок. Перший рядок виглядає завершено, але початкова цитата все ще очікує на вміст рядків або цитату закриття. Коли парсер досягає сировини, він зупиняється там, бо JSON рядки не можуть пропускати фізичні лінії, що спосіб. Текст повинен містити в собі два символи `\n` декодовано значення має новий рядок.
Вкладки, що копіюються з документа або аркуша, викликають той самий клас провалу, хоча редактор може надати їм нешкідливий інтервал. Заміна літрової вкладки з `\t`, повернення перевезення з `\r` та інші заборонені контрольи з ім'ям або Unicode.
Восьма втечу JSON Можливість
Восьма втечу JSON дозволяє — після застібки короткі форми `"`, `\\`, `\/`, `\b`, `\f`, `\n`, `\r` і `\t`. Вони являють собою знак квоти, застібка, застібка, застібка, задня форма, подача лінії, повернення вантажу і горизонтальну вкладку. Також з'являються суспензії; `\/` існує в основному для сумісності з контекстами, які одночасно обробили послідовність закривання.
Немає іншого листа може слідувати JSON спинки. Відомі мови програмування, такі як `\v`, `\0`, `\x41` або задньої вії, що слідує фізичною новоюлінією, є недійсними тут. Зареєструватися `\u` після того, як він не існує. Цей невеликий фіксований словник зберігає JSON рядки переносні: споживач не потребує JavaScript, Python або оболонка-специфічні правила для визначення символів, представлених чинним текстом.
Чому літровий вкладок недійсний, але літровий е є дрібним
Чому недійсний літровий вкладок, але літровий é є дрібним — JSON забороняється розблокувати пункти коду з U+0000 через U+001F всередині рядків. Цей діапазон містить вкладки, нові лінії та інші елементи керування, які невидимі ефекти можуть порушити обрамлення або відображення. Лист `é` є U+00E9, добре за межами діапазону управління, тому UTF-8 JSON може включати його безпосередньо між лапками. Те ж саме стосується більшості сценаріїв, символів та смайлів.
Прискорення звичайного Unicode є обов'язковою, не вимогою чистоти. `"café"` і `"caf\u00e9"` декодування до тієї ж послідовності символів. Пряме текст, як правило, простіше для людей, щоб читати, втечу можна допомогти ASCII-тільки транспортні або роблять конкретний блок коду видимим. Символи керування відрізняються: їх втечу обов'язково.
Як \uXXXX працює
Як `\uXXXX` втечу роботу — робота `u` необхідно дотримуватися рівно чотири шістнадцяткових цифр, використовуючи 0–9 або A-F в будь-якому випадку. `\u00E9` представляє UTF-16 блок коду для `é`й `\u000A` являє собою лінійний корм. Фірмові цифри, брекети, такі як `\u{1F600}` або невипадковий лист зробити JSON недійсний, навіть якщо інша мова програмування приймає, що заперечення.
Символи над U+FFFF представлені в цій формі втечу, як сурогатна пара. Ви можете бути написані як `\uD83D\uDE00`: Висока і низька сурогатна комбайна після парсингу в одне значення скаляра Unicode. JSON граматика може перенести незрівняне сурогатне втечу, але за допомогою програми можна відхилити або замінити його, оскільки він не виявить повного символу Unicode.
Розроблений приклад: ескопування шляху Windows і хіппе HTML
Розроблений приклад: ескопування шляху Windows і хіппе HTML — призначений шлях `C:\Temp\report.txt` потребує кожного задньої подвійної вставки JSON Джерело: `"C:\\Temp\\report.txt"`. Без купання, `\T` є недійсним втечу і послідовності, такі як `\r` або `\t` безшумно стають контрольними героями замість стечних сепараторів. Побудувати JSON від призначеного значення, не вгадуючи, що відображаються сутички вже належать до зовнішньої мови.
Анжела HTML фрагмент таких як `<a title="Report">Open</a>` може зберігати свої кутові дужки і slash буквально, але атрибути повинні стати `\"` всередині JSON рядок. Якщо нова лінія відокремлює два теги, зашифруйте його як `\n`. В результаті JSON учасник може бути дійсним і заповнений назад до оригінального HTML текст.
Де втекти отримати doubled
Де втекти подвійно — кожен захоплюючий текст граматики отримує власний шанс інтерпретувати застібки. Р JSON документ, що містить декодований рядок `line1\nline2` повинні втекти, що задняться, виробництво `"line1\\nline2"`. Якщо це JSON Текст зберігається як JSON string, його котирування і обидві застібки потребують іншого шару обшивки. Виявлені помилкові записи декількох представленнях, не спеціальна розширена форма JSON.
Шелли і програмування мовних лілій додають свої правила котирування до JSON парсер бачить аргумент. Діагност з внутрішньої сторони: напишіть точний декодований значення першим, зашифруйте його як JSON один раз, потім закодувати, що завершити JSON текст для навколишнього оболонки або мови джерела. На кожній межі, перевірте те, що байти або персонажі насправді отримує наступний парсер.
Що це не криється
Що це не криється — HTML сутності, такі як `"` і URL відсотків-понадходження, такі як `%20` – окремі трансформації для окремих синктичних контекстів. А.А JSON не розшифровується як форму. Наклад `"""` містить шість літеральних символів після парсингу, не знаки процитів, і `"%20"` містить знак відсотка, який слідує двома цифрами, не пробіл. Застосувати кодування тільки при перехресних даних HTML або URL компонент.
Ця дискусія також не замінює кодування вихідних даних. Дійсно JSON отримано від ненадійного джерела HTML, послідовно-подібні текстові або термінали управління як звичайні дані рядків. Додаток, який пізніше надає або виконує команду, яка повинна безпечно працювати. JSON еспресорний захист JSON структура; це не універсальна санітарія.
Поведінка: втечу, що граматика забороняється, нічого більше
Поведінка: втечу, що граматика забороняється, нічого більше — подвійні котирування, застібки та пункти коду нижче U+0020 потрібна увага всередині JSON нитки. Ординарний Unicode може залишатися читабельним, одночасно `\uXXXX` забезпечує точний чотирицифровий альтернативний і сурогатний пар, що представляють символи над U+FFFF. Діагностичне значення на явно порожній позиції часто визначає літеральну нову лінію, вкладку або інший характер управління, який необхідно замінити його текстом.
Перерахуйте шари кодування замість підрахунку зітків на увазі. Почати з вартості заявки необхідно, закодувати його одноразово JSON і тільки потім процитувати отриманий документ для будь-якого зовнішнього оболонки, вихідного файлу або другого JSON рядок. Подати текст JSON парсер і, коли правильність має значення, перевірте декодований рядок після