အဓိကအကြောင်းအရာသို့ ကျော်သွားရန်

အခမဲ့ YAML မှ JSON Converter

YAML မှ JSON သို့ နှင့် JSON မှ YAML သို့ နှစ်ဖက်လုံး ပြောင်းပါ။ မည်သည့် format မဆို ကူးထည့်ပြီး ပြောင်းထားသော output ချက်ချင်း ရပါ — server upload မလိုဘဲ。

Load ပြီးသည်နှင့် offline အလုပ်လုပ်သည်
JSON ထွက်ပေါ်မည်
ထွက်ပေါ်မည် ဤနေရာတွင်…

အသုံးများသော အသုံးပြုမှုများ

  • Kubernetes မုံလုံးများအတွက် YAML မှ JSON သို့ပြောင်းလဲပါKubernetes YAML မှ JSON သို့ (သို့မဟုတ်ပြန်သို့) ကိရိယာများ၊ အီလျှုံကစာသားများ သို့မဟုတ်API ထံတစ်ခြား၄တည့်ခြင်းများတွင်။
  • Docker Compose YAML / JSON ပြောင်းလဲမှုdocker-compose.yml မှ JSON သို့ အီလျှုံကများကို သို့မဟုတ်အီလျှုံကပြုပြင်မှုများပြီးနောက် YAML သို့ပြန်သို့။
  • CI/CD ပိုက်လိုင်း ဖွဲ့စည်းပုံ ပြောင်းလဲခြင်းGitHub Actions၊ GitLab CI၊ CircleCI နှင့်အခြား pipeline အီလျှုံကများမှ YAML နှင့် JSON အီလျှုံကများအားကြားတွင်ပြောင်းလဲပါ။
  • အီလျှုံကအီလျှုံကဖိုင်ပြောင်းလဲမှုအီလျှုံကအီလျှုံကဖိုင်များမှ YAML နှင့် JSON အားကြားတွင်ပြောင်းလဲပါ — အီလျှုံကအီလျှုံကများပြောင်းလဲမီတွင် သို့မဟုတ်အီလျှုံကများအားကြားတွင်အီလျှုံကများခွဲမျှေ့ခြင်းအတွက်အသုံးဝင်ပါ။
  • OpenAPI / Swagger အီလျှုံကပြောင်းလဲမှုOpenAPI 3.x သို့မဟုတ် Swagger 2.0 API အီလျှုံကများမှ YAML နှင့် JSON အီလျှုံကများအားကြားတွင်ပြောင်းလဲပါ။ နှစ်ခုလုံး အီလျှုံကများသည် အီလျှုံကများ နှင့်အီလျှုံကများမဖြစ်ပါ။

မည်သို့ အလုပ်လုပ်သည်

Conversion ဦးတည်ချက်နှစ်ခုစလုံး — YAML to JSON and JSON to YAML — သည် ပြင်ပ YAML library သို့မဟုတ် server မပါဘဲ စာမျက်နှာထဲသို့ တည်ဆောက်ထားသော ကိုယ်တိုင်ရေးထားသော parser နှင့် emitter ကို သုံး၍ သင့် browser ထဲတွင် လုံးဝ ဖြစ်ပျက်ပါသည်။ Logic ကို TypeScript module တစ်ခုတည်း (lib/yamljson.ts) တွင် ထားရှိပြီး mapping, sequence, scalar, quoted string, and inline comment ဖယ်ရှားခြင်းကို ကိုင်တွယ်သည်။

  1. 1
    Input ကို line-by-line pre-process လုပ်ထားသည်
    YAML input အတွက် parser သည် စာသားကို line များအဖြစ် ခွဲပြီး inline comment များ (string များအတွင်းရှိ # ကို ဖယ်ရှားမသွားရန် quote state ကို track လုပ်ခြင်း) ကို ဖယ်ရှားကာ indentation depth ကို တိုင်းတာပြီး blank line များကို ဖယ်ရှားသည် — parsing မစတင်မီ ဖွဲ့စည်းထားသော token list တစ်ခု တည်ဆောက်သည်။
  2. 2
    Recursive descent parser တစ်ခုသည် data tree ကို တည်ဆောက်ပေးသည်
    Parser သည် ဖွဲ့စည်းပုံကို သတ်မှတ်ရန် indentation level ကို သုံး၍ token list ကို လျှောက်သည်။ ၎င်းသည် sequence item (- value), mapping key (key: value), and nested block များကို မှတ်မိသည်။ Scalar များသည် null, boolean, integer (data ဖျက်ဆီးမှု တိတ်တဆိတ် ရှောင်ရှားရန် 007 ကဲ့သို့ ရှေ့သုညပါသော တန်ဖိုးများကို ငြင်းပယ်) and float ကို ကိုင်တွယ်သော typed coercion အဆင့်ကို ဖြတ်သန်းစေသည် — YAML 1.1 barewords yes, no, on, and off ကို boolean သို့ မပြောင်းလဲဘဲ string များအဖြစ် ထားသော ရွေးချယ်နိုင်သော mode တစ်ခုနှင့်အတူ။
  3. 3
    ပံ့ပိုးမထားသော YAML feature များကို flag တင်ထားပြီး တိတ်တဆိတ် ချန်ထားခြင်း မရှိပါ
    Output မပေါ်မီ ကိရိယာသည် anchor (&name), alias (*name), merge key (<<:), block scalar (| and >), multi-document marker (---), and duplicate mapping key များကို scan လုပ်သည်။ ၎င်းတို့ထဲမှ မည်သည့်တစ်ခုကမဆို ရှုပ်ထွေးသော မှားယွင်းသော JSON ထုတ်ပေးမည့်အစား မြင်သာသော သတိပေးချက်တစ်ခု trigger လုပ်သည်။
  4. 4
    JSON ကို serialize လုပ်ထားခြင်း (သို့) YAML ကို emit ထားခြင်း၊ ထို့နောက် ရရှိနိုင်စေထားသည်
    YAML→JSON အတွက် parse လုပ်ထားသော တန်ဖိုးကို သင်ရွေးချယ်ထားသော indentation (2 spaces, 4 spaces, tab, or minified) ဖြင့် JSON.stringify သို့ ပေးပို့သည်။ JSON→YAML အတွက် custom emitter တစ်ခုသည် parse လုပ်ထားသော JavaScript တန်ဖိုးကို လျှောက်ပြီး indent လုပ်ထားသော YAML ကို ထုတ်ပေးသည်၊ လိုအပ်သောအခါသာ string scalar များကို quote လုပ်သည် (ဥပမာ :, #, ပါသော (သို့) reserved word များ ဟန်ဆောင်သော တန်ဖိုးများ)။ Output ကို ရိုက်နေစဉ် ချက်ချင်း ပေါ်လာပြီး ကူးယူ (သို့) ဒေါင်းလုဒ်ဆွဲနိုင်သည်။

ဆက်နွှယ်သော ကိရိယာများ

မကြာခဏ မေးလေ့မေးထရှိသော မေးခွန်းများ