Прескокни до главната содржина

Зошто TOML излезот не е достапен за некои JSON или YAML влезови

Од Converty Team

Научете зошто TOML излезот не е достапен за некои валидни JSON или YAML влезови, што бара TOML на top level и како да процените дали самиот data model одговара на TOML документ.

Зошто TOML излезот не е достапен за некои JSON или YAML влезови

Понекогаш валиден JSON или YAML не може да стане валиден TOML документ без да се смени shape-от на податоците. Тоа може да изгледа како limitation на converter-от, но често е limitation на самиот format. TOML е создаден за config documents и очекува top-level structure што не се поклопува со секој можен JSON или YAML value.

JSON / YAML / TOML конверторот во Converty го прави ова видливо наместо да произведе misleading output. Ако TOML output не е достапен, најважното прашање е дали source data model-от воопшто има природна TOML representation.

TOML не е само уште една синтакса

JSON може да има object, array, string, number, boolean или null на top level. YAML е уште пофлексибилен. TOML е построг. Тој најдобро работи кога имате table-like config document со keys и nested sections.

Ако source-от е top-level array или scalar value, TOML нема исто толку директен документ shape. Converter што би го завиткал во измислен key би го сменил meaning-от. Затоа е подобро да се каже дека TOML output не е достапен отколку да се создаде output што изгледа валидно, но не е семантички ист.

Кога TOML output е разумен

TOML е добар fit кога source data изгледа како config object:

{
  "site": {
    "name": "Converty",
    "enabled": true
  }
}

Таквата структура може природно да стане TOML table. Но ако input-от е:

[
  "webp",
  "csv",
  "markdown"
]

прашањето не е само како да се напише TOML. Прашањето е кој key би требало да го содржи array-от. Ако converter-от сам го измисли тој key, веќе не го зачувува истиот model.

Како да реагирате кога TOML output не е достапен

Кога Converty ви кажува дека TOML output не е достапен:

  1. Проверете дали source-от е валиден JSON или YAML.
  2. Погледнете го top-level shape-от.
  3. Одлучете дали data model-от треба да биде config object.
  4. Ако треба, додадете explicit key или wrapper во source-от.
  5. Потоа повторно пробајте TOML output.

Ова е подобро од автоматско wrap-ирање затоа што вие ја правите semantic decision, не converter-от.

Compatibility warnings се заштита, не пречка

Целта на conversion tool не е секогаш да произведе нешто по секоја цена. Целта е да произведе output што можете да го користите со доверба. Кога format-от не може да претстави input без ambiguity, warning-от е дел од квалитетот на алатката.

За broader conversion workflow, видете Како да конвертирате JSON, YAML и TOML без да ги оштетите податоците. Ако работите со config snippets, корисен companion е водичот за debugging JSON, YAML и TOML едно до друго.

Оставете го model-от да ја води конверзијата

Кога TOML output не е достапен, не почнувајте со syntax workaround. Почнете со data model-от. Ако структурата природно е config object, направете го тоа јасно во source-от. Ако не е, можеби TOML не е вистинскиот destination format.

Отворете го JSON / YAML / TOML конверторот, проверете ги warnings и користете ги најчесто поставуваните прашања за broader workflow и privacy details.

Може да ви се допадне и ова