YAML और JSON: किस config format का उपयोग करें और कैसे convert करें

2025-05-20

YAML 1.2 का लक्ष्य JSON compatibility है—valid JSON को YAML parser पढ़ सके। Ops config में YAML आम है, जबकि app interchange में JSON; conversion करते समय pitfalls समझना जरूरी है.

Core differences

JSON strict है: comments नहीं, double-quoted keys, canonical structure। YAML indentation-आधारित है, # comments और flexible scalars देता है.

JSON
{ "server": { "port": 8080 } }
YAML
server:
  port: 8080

Config files के लिए कौन सा बेहतर?

Hand-edited ops config (K8s, CI, Docker) में YAML सुविधाजनक है। Generated manifests और app data exchange के लिए JSON अधिक deterministic है.

Conversion traps

yes/no booleans बन सकते हैं, version strings numbers बन सकती हैं, anchors JSON में नहीं आते, और YAML में tabs invalid हैं.

CLI conversion

yq, js-yaml, PyYAML उपयोग करें और conversion के बाद JSON.parse चलाकर silent type changes पकड़ें.

Practical Kubernetes tips

Repo में YAML रखें; जब JSON-only consumer चाहिए तो CI में convert करें। बहुत बड़े JSON manifests हाथ से न लिखें.

Summary

Humans के लिए YAML, machines के लिए JSON। Tool versions pin करें और हर transform के बाद validation करें.