Naar de inhoud

Conversie van YAML naar JSON-formaat — Numio

Parseert één YAML-document met de yaml-bibliotheek (YAML 1.2 kernschema) en voert dit uit als ingesprongen JSON. Opmerkingen worden verwijderd, ankers en aliassen worden uitgebreid en waarden als ja of 01-01-2024 blijven tekenreeksen.

Instellingen die in YAML zijn geschreven, verzenden naar een API- of JSON-schemavalidator die alleen JSON accepteert.

YAML

JSON

Wanneer gebruik je dit?

  • Instellingen die in YAML zijn geschreven, verzenden naar een API- of JSON-schemavalidator die alleen JSON accepteert.
  • Controleren hoe een CI- of Kubernetes-bestand daadwerkelijk is getypt, b.v. of een versie een string of een getal is.

Hoe werkt het

  1. Plak één YAML-document of laad een .yaml/.yml-bestand.
  2. Als er een fout optreedt, controleer dan de inspringing, dubbele sleutels en --- scheidingstekens op de gerapporteerde regel.
  3. Controleer tekenreeksen versus getallen in de JSON-uitvoer en kopieer deze vervolgens.

YAML-ingang

# deployment settings
service: billing-api
replicas: 2
version: "1.10"
enabled: yes
ports:
  - 80
  - 443
env:
  LOG_LEVEL: info

JSON

{
  "service": "billing-api",
  "replicas": 2,
  "version": "1.10",
  "enabled": "yes",
  "ports": [
    80,
    443
  ],
  "env": {
    "LOG_LEVEL": "info"
  }
}

Details en beperkingen

Het parseren gebeurt in de browser. De uitvoer is altijd JSON met 2 spaties; er is geen optie voor verkleinen.

De regels voor YAML 1.2 zijn van toepassing: ja/nee/aan/uit zijn strings, geen booleans, en datums zonder aanhalingstekens blijven strings. 0o17 is octaal (15).

Samenvoegsleutels (<<: *anchor) worden niet samengevoegd; ze verschijnen als een letterlijke "<<"-sleutel. Dubbele sleutels in één toewijzing zijn een fout.

Gehele getallen groter dan 2^53 verliezen precisie in JSON. Citeer lange ID's in de YAML.

FAQ

Kan het een bestand converteren met verschillende documenten gescheiden door ---?

Nee. Meerdere documenten veroorzaken de foutmelding "Bron bevat meerdere documenten". Plak één document tegelijk. Eén enkele leiding --- is prima.

Waarom is ingeschakeld: ja een string in de JSON?

De parser volgt YAML 1.2, waarbij alleen waar en onwaar booleaanse waarden zijn. Schrijf waar/onwaar als u een JSON-boolean nodig heeft.

Worden ankers en aliassen ondersteund?

Ja. Een alias zoals *base wordt vervangen door een kopie van de verankerde waarde. De YAML 1.1-samenvoegsleutel << wordt echter niet toegepast.

Specificaties en referenties