Інструменти розробника · Конвертер Syntax
JSON до XML перетворення: кореневі елементи, масиви та недійсні теги
· Як працює
Опубліковано ToolAcre · Редакція журналу
свінгери Логін Інформатика

JSON може бути масив bare з ключами, які починаються з цифрами або містять пробіли, жодне з яких немає XML дозволяє. Цей пост пояснює, що рішення конвертер повинен зробити про корені, масиви і імена, тому ви можете прогнозувати вихід.
масив без назви — верхній рівень JSON масив, який повинен стати одним XML документ, і елемент обгортки, який з'являється
JSON може початися з `[1,2]`; XML не можна починати з двох елементів документа. ToolAcre Таким чином, обгортання кореневого масиву в ім'я вибраного кореня і записує кожного учасника як повторне `<item>` дитина. Попередження імен, які не були присутніми в джерелі.
Вибір `numbers` врожайність `<numbers>` елемент документа, що містить два елементи елемента. Конверсія є детерміналістичною, але не канонічної: інша система може знадобитися `<number>` або колекція атрибутів. Встановити корінь навмисно і порівняти результат з необхідністю ресивера XML договір.
XML вимагає точно одного кореня - чому кожен винахідник перетворення або просить ім'я кореневого елемента
Анжела XML документ повинен мати точно один елемент кореня. Р JSON об'єкт з точно одним звичайним ключем верхнього рівня може використовувати цей ключ безпосередньо. Багато клавішний об'єкт, масив, скаляр або null не має єдиного імені, тому письменник закриває його в `root` якщо користувач надає ще одну юридичну назву.
Правило обгортки здійснюється перед послідовністю і наповненим попередженням. Не відкривається шема і не стверджує, що `<root>` має значення для служби спадкування. Намування конверта є частиною проектування інтеграції, в той час як конвертер тільки гарантує добре сформовану структуру під власною картографією.
Армені не мають XML еквівалент — повторення елемента за одиницю, і як представлені масиви масивів і масивів масивів масивів
Араси стають повторними елементами. У корені документа, члени використовують `<item>` приманити обгортку. Всередині об'єкту масив зберігається під `line` повторюється `<line>` свінгери. Араси об'єктів створюють повторювані елементи з дитячими полями; при цьому масиви не мають доменних імен і успадку структури, що виробляється будівельником.
Це втратить різницю між одним користувачем масиву та скаляром з такою назвою елемента після того, як пізніше XML-доJSON читати. XML забезпечує виникнення, незалежні маркери масиву. При стабільних питаннях кардиналності, щім або картуванням програми необхідно поставляти його; загальний послідовник не може доводити його з JSON-подібні імена елементів.
Ключі, які не можуть бути іменами елементів — імена, починаючи з цифр, що містить пробіли або пунктуацію, або починати з 'xml', і як перетворювачі перейменування або втечу їх
Ви можете перейменувати або втекти незаконні ключі. ToolAcre відмовляється від них. Ключ з простором, один початок з цифрою або гіфеном, або один початок з зарезервованими літерами `xml` тригери `UNSUPPORTED_SHAPE` і іменує вихідний шлях. Силіконові перейменування будуть виробляти XML що відповідає не домовленості.
Дійсні імена можуть починатися з літери, фортепіано або префікса за стилем імен і можуть містити цифри, періоди, андерсони, колони та гіфени після початку. Використання атрибутів `@` тільки як JSON Конвенції; ім'я решти атрибутів повинна пройти однакову перевірку. Перейменуйте вихідний ключ навмисно або оберіть інший формат цілі.
Ключові слова, які не можуть бути іменами елементів, відмовляються, ніколи не перейменуються або втекли
Кількість і болеани послідовно виконуються як елемент тексту, так і їх JSON тип не оголошений XML. За замовчуванням зворотний зчитувач послідовно повертає рядки. Нул не має XML тут: вона стає порожнім елементом, нерозпустимим від порожнього рядка, і письменник повідомляє про те, що багато значень, які підлягають зміні.
Це означає `{ "a": null, "b": "" }` може виготовити два порожні елементи, які читають назад так. Зателефонувавши, що без втрати поїздки буде помилковим. атрибути, `#text` і `#cdata` зберегти конвенцію перетворювача, але вони не додають загального XML тип системи.
Види стають XML текст, в той час як null стає визнаним неоднозначним
Зареєструватися `{"order":{"@id":"A-7","customer":"Ada","line":[{"sku":"P1","qty":2},{"sku":"P2","qty":1}],"note":null}}`. Єдиний `order` ключ стає корінь, `@id` стає атрибутом, кожен об'єкт лінії стає повторним `<line>`, і null стає порожнім `<note></note>` з попередженням.
Перевірити вихід назад з відключенням. Атрибут id, кількість і значення тексту є рядками, і рядок є масивом, оскільки він з'являється двічі. Це демонструє точний підтриманий інверс під час вилучення втрачених нульок та нумеричних типів. Приймання замовлення схеми може вимагати інші імена або замовлення, які цей приклад не діє.
Що це не обкладинка — виробництво XML що відповідає XSD або простір імен, який потребує картування, написаної вручну
Автор не споживає XSD, призначити простір імен URIs або визначити порядок елемента від бізнес-шма. Він пише XML декларація і ніколи не випромінює DOCTYPE. Ключові слова, що містять префікси простору ім'я зберігаються буквально, але це не роздільна здатність простору ім'я або доказ того, що префікс проголошується правильно.
Генерація XML Прийнята конкретним сервісом може знадобитися атрибути, обмеження послідовності, вибір груп та кваліфікованих імен. Використовуйте точну схему або документацію, щоб побудувати це картування. Для перевірки та простих даних-центричних документів, не замініть послідовність контрактів.
Похід: прогнозувати форму до того, як ви залежите від нього — і як панель перетворювачів Синтаксису показує, що XML структура JSON документ виробляє
Визначте конверт, імена елементів і втрату типу до в залежності від результату. ToolAcre обгортання значень, що не вистачає одного кореня, повторює масиви, карти `@` ключі до атрибутів, замінює null з порожнім текстом і відмовляється від незаконних імен, а не вгадуючи заміну. Кожна неодружена зміна з'являється у виході або попередження.
Випробуйте найменший об'єкт, який включає в себе масив верхнього рівня, повторні записи, null, numeric text і awkward key. Відмова є корисними доказами, які обов'язкові для ручного копіювання. Успішний файл все ще потребує перевірки фактичним ресивером, оскільки добре сформований XML і schema-valid XML різні вимоги.
Після того, як ресивер приймає зразок, додайте зворотну перевірку тільки де очікується копіювання. Атрибути і багаторазові діти можуть забігти під ToolAcre’ Власна конвенція, при цьому неможливі типи скальмарів. Запис на те, що відмінність запобігає успішному щасливому прикладі, починаючи від узагальненого до кожного документа замовлення, ваша інтеграція може вироблятися.