JSON ↔ YAML conversion म्हणजे काय?
JSON (JavaScript Object Notation, RFC 8259) हे structured data साठी strict, brace-delimited text format आहे; YAML (YAML Ain't Markup Language, version 1.2) हे JSON चे superset आहे जे त्याच value model साठी indentation, line breaks, आणि human-readable syntax वापरते. त्यांच्या दरम्यान convert केल्याने तुम्ही एकाच configuration ला machine-friendly form (APIs, schema validation, programmatic transforms साठी JSON) आणि human-friendly form (code review, Kubernetes manifests, GitHub Actions workflows साठी YAML) दरम्यान pivot करू शकता एकही key retyping न करता.
JSON ↔ YAML conversion कसे कार्य करते?
प्रत्येक conversion bundled js-yaml library (MIT, version 4.1.0) वापरून browser मध्ये locally run होतो. High-level steps:
- Mode selector (Auto-detect / JSON → YAML / YAML → JSON) कोणता pipeline run होतो ते ठरवतो. Auto-detect mode मध्ये input चा पहिला non-whitespace character direction निवडतो —
{किंवा[म्हणजे JSON; इतर कशाचाही अर्थ YAML. - JSON → YAML:
JSON.parseinput validate करतो आणि JavaScript value produce करतो;jsyaml.dump(value, { indent, lineWidth: -1, sortKeys: false })YAML 1.2 form लिहितो. Multi-document चालू असल्यास, input array प्रत्येक document per element dump होतो आणि---separators ने joined होतो. - YAML → JSON:
jsyaml.loadAllinput मधील प्रत्येक document parse करतो (---separators automatically handle करतो) array मध्ये; single-document inputs unwrapped होतात जेणेकरून JSON output document स्वतः असेल, one-element array नाही. - Indent (2 किंवा 4 spaces) आणि Pretty-print configurable आहेत. Pretty-print बंद असल्यास
JSON.stringify(value)ने whitespace शिवाय minified JSON emit होतो. - Output read-only textarea मध्ये लिहिला जातो. YAML parse failures वर, error message मध्ये
js-yamlच्याe.markने reported 1-indexed line आणि column समाविष्ट आहे जेणेकरून तुम्ही थेट bug वर jump करू शकता.
या tool ने JSON आणि YAML का convert करायचे?
- Privacy: प्रत्येक parse, transform, आणि emit pass तुमच्या browser मध्ये होतो. Data — Kubernetes secrets, signed JWTs, आणि proprietary configs सह — कधीही आमच्या servers पर्यंत पोहोचत नाही.
- Multi-document YAML:
jsyaml.loadAll---separators ओळखतो आणि documents चे array return करतो, जे converter single-doc cases साठी unwrap करतो किंवा multi-doc cases साठी JSON array म्हणून preserve करतो. - Anchors आणि aliases resolved: YAML चे
&anchor/*aliasmechanismjs-yamlच्या default schema ने handle होते. एकदा defined आणि दोनदा referenced value JSON object मध्ये round-trip होते जिथे सर्व references equal values hold करतात. - CDN नाही, telemetry नाही:
js-yaml.min.jslibrary page च्या same origin वरून ship होते, त्यामुळे tool offline, corporate proxies मागे, आणि air-gapped environments मध्ये काम करते.
JSON ↔ YAML conversion चे सामान्य उपयोग काय आहेत?
JSON आणि YAML दरम्यान pivot करणे DevOps, platform engineering, आणि API tooling मध्ये दिसते:
- Kubernetes manifests: YAML
Deployment,ConfigMap, किंवाHelmReleaseJSON मध्ये convert करणे जेणेकरून in-house policy validator (Joi, Ajv, OPA Rego) programmatically lint करू शकेल, नंतर cluster apply साठी YAML परत. - CI/CD workflows: GitHub Actions
workflow.ymlJSON मध्ये round-trip करणे जेणेकरून code-generator matrix किंवा job dependencies rewrite करू शकेल, नंतर PR साठी cleaned-up YAML emit करणे. - OpenAPI specs: backend च्या auto-generated docs मधून JSON
openapi.jsonpaste करणे आणि repo मध्ये checked human-edited reference साठीopenapi.yamlमध्ये convert करणे.
JSON ↔ YAML round-trip उदाहरण कसे दिसते?
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"name":"web"},"spec":{"replicas":3,"selector":{"matchLabels":{"app":"web"}}}} paste करणे आणि JSON → YAML mode मध्ये CONVERT दाबणे पहिल्या line वर apiVersion: apps/v1 सोबत आठ lines of indented YAML produce करते. ते YAML परत YAML → JSON mode मध्ये Pretty-print चालू असताना घातल्यास stable JSON.stringify(value, null, 2) नंतर original object byte-for-byte परत येतो, key order preserved राहतो कारण js-yaml चा default schema दोन्ही directions वर insertion order honour करतो.
हा JSON ↔ YAML converter पूर्णपणे माझ्या browser मध्ये run होतो का?
होय. प्रत्येक parse, transform, आणि emit pass तुमच्या browser tab मध्ये JavaScript म्हणून locally run होतो. Bundled js-yaml library page च्या same origin वरून ship होते — CDN नाही, fetch नाही, XMLHttpRequest नाही, input वर navigator.sendBeacon नाही. Page load झाल्यावर tool offline पण काम करते, कारण ते vendor library copied alongside असलेले static HTML/CSS/JS bundle आहे. Kubernetes secrets, JWT payloads, signed CloudFormation YAMLs, आणि proprietary configs तुमच्या device वर राहतात.
Converter multi-document YAML कसे handle करतो?
YAML फक्त --- असलेल्या lines ने separated एका stream मध्ये multiple documents support करतो. YAML → JSON वर converter jsyaml.loadAll call करतो, जे प्रत्येक document JavaScript value म्हणून return करतो. जर नक्की एक document सापडल्यास JSON output तो document directly असतो; दोन किंवा अधिक सापडल्यास JSON output array असतो. JSON → YAML वर, input JSON array असल्यास आणि Multi-document toggle चालू असल्यास, प्रत्येक array element स्वतःचा document म्हणून --- separators सोबत emit होतो — JSON array of resources मधून kubectl apply-friendly bundle generate करण्यासाठी उपयुक्त.
YAML anchors आणि aliases supported आहेत का?
होय — &anchor definitions आणि *alias references load step दरम्यान js-yaml च्या default schema ने resolved होतात. defaults: &d\n retries: 3\n timeout: 30\njob_a:\n <<: *d\njob_b:\n <<: *d सारखे YAML input JSON object मध्ये parse होते जिथे job_a आणि job_b दोन्हींमध्ये retries: 3, timeout: 30 असते. Merge key << (YAML 1.1 extension जे js-yaml अजूनही honour करतो) पण default schema वर supported आहे.
JSON ते YAML आणि परत convert करताना YAML comments preserved होतात का?
नाही — js-yaml parse step दरम्यान comments strip करतो, त्यामुळे YAML → JSON → YAML round-trip प्रत्येक #-prefixed line गमावेल. ही load/dump model ची known limitation आहे; comment preservation critical असल्यास, js-yaml ऐवजी comment-aware library वापरा जसे yaml npm package (जे trivia preserve करण्यासाठी designed CST + AST API ship करते). बहुतेक config-conversion workflows साठी trade-off acceptable आहे: round-tripped YAML प्रत्येक key, value, anchor, आणि alias ठेवतो, फक्त human-authored comments शिवाय.
Custom YAML tags चे काय होते?
Converter js-yaml चा DEFAULT_SCHEMA वापरतो, जो !!str, !!int, !!float, !!bool, !!null, !!seq, !!map, !!binary, आणि !!timestamp — YAML 1.2 core आणि JSON schemas मधील प्रत्येक tag — समजतो. Custom किंवा application-specific tags (उदा. CloudFormation मध्ये !Ref, Ansible मध्ये !vault) ओळखले जात नाहीत आणि unsupported tag citing करणाऱ्या clear error म्हणून surface होतात. CloudFormation साठी, इथे paste करण्यापूर्वी custom tags expand करण्यासाठी aws cloudformation package + --output-template-file flow वापरा.
हा JSON ↔ YAML converter js-yaml@4.1.0 same origin वर bundled ship करतो, multi-document streams आणि anchors/aliases out of the box support करतो, आणि YAML parse errors line आणि column सोबत report करतो जेणेकरून तुम्ही source fix करू शकता. Upload नाही, CDN नाही, telemetry नाही — प्रत्येक byte तुमच्या browser मध्ये राहतो.