Інструменти розробника · Конвертер Syntax
Порівняти чотири моделі даних: чому JSON, YAML, TOML і XML ніколи не мапа 1:1
· Підземелля
Опубліковано ToolAcre · Редакція журналу
Інформатика свінгери yaml

Кожна конвертація між цими форматами є втратою десь, бо кожен був розроблений навколо іншої моделі даних. Цей пост порівнює свої типи систем і конструкцій, тому ви можете прогнозувати, що перетворення буде зберігатися і що вона буде скидати.
Настроювання, що не буде округлим — файл, перетворений через три формати та поля, які повернулися назад, різні
Звичайний об'єкт, що містить безпечні номери, рядки, болеани, масиви та об'єкти, що не містяться, можуть вижити JSON-доYAML-доJSON і JSON-доTOML-доJSON тести. Додати null до TOML, час від TOML, змішаний XML Зміст або YAML коментар, і деякі зміни інформації про джерело.
Корисне питання – це не те, чи є перетворення універсально. Для чого потрібен вхідний клас і який напрямок. ToolAcreПопередження та відмова роблять цю матрицю, не зменшуючи кожну пару на одну маркетингову обіцянку.
Представницька конфігурація може захопити через деякі пари, але не кожна підтримана форма
JSON забезпечує null, booleans, номери, рядки, масиви та об'єкти в цьому парсері. Немає коментарів, датовий тип або спільного редагування синтаксису. JavaScript кількість парзів як IEEE-754 подвійні, так що вже неможливе ціле за межами безпечного діапазону може втратити прецизію перед іншим письменником.
Текстові ключі є рядками та додатковими змінами їх презентації. Араси залишаються замовленими. Суворий причіп відхиляє коментарі, причіпаючи коми і нефіцитні нумерні токени, встановлюючи компактну базову лінію для інших читачів.
JSONМодель значення, що використовується цим JavaScript Реалізація
ToolAcre Приймати YAML через обмеження JSON або Core schemas. Анкери і псевдоніми вирішують, зникають коментарі, потоки стають масивами, дублікати ключів зберігають останнє значення з попередженням, а також відмовляються від рекурсивних або вибухових речовин.
Призначені для користувача теги, бінарні, своєчасні, набір і мовно-об'єктні конструктори відхиляються. Core Infinity і NaN стають нуллю в цільових форматах з попередженнями. Це навмисно підмножити YAML’ Широка система тегів, не претендує на повну YAML супровід об'єкта.
Обмеження YAML модель ToolAcre приймати
TOML починається з таблиці та підтримує рядки, підписані цілі, плавки, болеани, масиви, таблиці та чотири часових видів. Не має нулі. ToolAcre перетворює дати і час на початково-орієнтовані рядки і широкі цілі до десяткових рядків, а не втратити цифри.
При написанні TOML, null ключі об'єкта omitted і null масив записів стають порожніми рядками. Відхилено кореневі масиви та скаляри. Коментарі та вибір автора серед заголовків, пунктуальні ключі та інлайн таблиці не повертаються через звичайне значення.
TOML’ кореневий стіл, часові значення та нуль межі
XML Проводиться як дерево з `@` атрибути, звичайні дитячі ключі, `#text`, `#cdata`, повторне використання масивів і просторових префіксів імені літра. Коментарі, інструкції щодо оформлення декларації та обробки. Змішані-текстові положення втрачені, і один проти багатьох не може бути відомий перед повторенням.
Значення, які читаються як рядки, якщо вибрано значення. Нул письмовий з JSON стає порожнім елементом і не можна відрізнити від порожнього рядка на поверненні. Всі DOCTYPE відмовлено, і недійсні імена припиняють послідовність, замість того, щоб повторити.
ToolAcreй XML проекція: елементи, атрибути, текстові та літерні префікси
Морський корабель: JSON до YAML, XML, TOML і CSV; YAML до JSON і TOML; TOML до JSON і YAML; XML до JSON. JSON-подібний звичайний тариф значень найкраще між JSON і YAML. TOML вводить дату і нулі межі. XML вимагає намінних і вузлів-категорії конвенцій.
CSV є плоским зовнішнім і вихідним тільки. Араси або вибрані об'єкти стають рядами, в'язаними шляхами, що плануються в пунктичні стовпчики, null об'єднує з порожнім текстом і формулоподібними рядками нейтралізуються. CSV-доJSON, XML-доTOML і інші відсутні пари не відмовляються, а не відкладені.
Матриця сумісності для дев'яти відправлених напрямків, з CSV тільки як вихідний
Бінарні формати та щіма мовами виходять за межі. schema може відновити список кардиналності або валідувати бізнес-форми, в той час як бінарні кодування вводять типів і обрамлення не представлені тут. Перетворювач ніколи не вимагає цих можливостей.
Нор робить синтаксис перетворення доводить термін дії програми. Чистий Кубернець-подібний YAML, XML Замовити повідомлення або TOML Файл проекту може порушувати цільовий договір. Використовуйте адміністратора домену після перевірки картування синтаксису.
Takeaway: оберіть модель, потім синтаксис — і як панель перетворювачів Синтаксису дозволяє перевірити перетворення, перш ніж зробити його
Виберіть модель даних перед вибором пунктуації. Якщо коментарі та псевдоніми, то JSON хоп не може зберігати їх. Якщо нулі питання, TOML зміни виходу. Якщо замовили змішані питання, то обов'язково JSON проекція недостатньо. Якщо призначення є столиком, в'язаним JSON вимагає явного розплавлення конвенції.
Зареєструватися ToolAcre для тестування одного представницького документа та отримання будь-яких повідомлень. Результатом є докази про бетонну пару і вхід, не дозвіл на виклик всіх перетворень без втрат або кожен підтриманий парсер завершено.
Побудувати представницький документ з кордонів, які стосуються вашого сервісу: null, порожній текст, великий ідентифікатор, дата-подібний рядок, один повторний запис, коментар або псевдоніми, якщо YAML бере участь, і змішаний текст, якщо XML бере участь. Порівняти нормалізовані значення після кожного підтриманого хмелю і зберігати попередження з результатом. Ця матриця стає артифактором рішення для обраної моделі, а не відвагомості для звичного синтаксису.