JSON Syntax နှင့် တည်ဆောက်ပုံကို နားလည်ခြင်း
JSON (JavaScript Object Notation) သည် ဒေတာဖလှယ်ရာတွင် အသုံးများသော စာသားအခြေပြု ပုံစံစနစ်တစ်ခုဖြစ်သည်။ ၎င်း၏ တည်ဆောက်ပုံသည် သော့ချက်နှင့် တန်ဖိုး တွဲဖက်မှုများ (Object Keys and Values) နှင့် အစီအစဥ်များ (Arrays) အပေါ်တွင် အခြေခံထားသည်။ JSON ဒေတာများ မှန်ကန်ရန်အတွက် တိကျသော ရေးထုံးစည်းမျဥ်များကို လိုက်နာရမည်ဖြစ်ပြီး၊ အနည်းငယ်မျှ လွဲချော်ပါက စနစ်များအကြား ဒေတာဖတ်ယူမှုကို အနှောင့်အယှက်ဖြစ်စေနိုင်သည်။
ဤ "JSON ပုံစံချစနစ်" ကိရိယာသည် သင့် JSON ဒေတာများကို စနစ်တကျ ပုံစံချပေးခြင်း၊ စစ်ဆေးပေးခြင်းနှင့် ချုံ့ပေးခြင်းတို့ကို ဆောင်ရွက်ပေးသည်။ ဤကိရိယာကို အသုံးပြုရာတွင် သင့် JSON ဒေတာများကို သင့်ဘရောက်ဇာထဲတွင်သာ လုပ်ဆောင်ပါသည်။ BroBroGo သို့ မည်သည့်အရာမျှ ပေးပို့ခြင်းမရှိပါ။
JSON ဖိုင်များ ထည့်သွင်းခြင်းနှင့် ကန့်သတ်ချက်များ
ဤကိရိယာထဲသို့ JSON ဒေတာများ ထည့်သွင်းရန် နည်းလမ်းနှစ်မျိုး ရှိသည်။ ပထမနည်းလမ်းမှာ "သင့် JSON ကို ဤနေရာတွင် ထည့်ပါ" ဟု ပြထားသော နေရာတွင် တိုက်ရိုက် ကူးယူဖော်ပြခြင်း (Paste) ဖြစ်သည်။ ဒုတိယနည်းလမ်းမှာ "ဖိုင်ဖွင့်ရန်" ကို နှိပ်၍သော်လည်းကောင်း၊ ဖိုင်ကို ဆွဲယူ၍ ".json သို့မဟုတ်.txt ဖိုင်ကို ဤနေရာတွင် ချပါ" ဟု ရေးထားသော နေရာသို့ ချ၍သော်လည်းကောင်း ဖိုင်ကို ဖွင့်နိုင်သည်။
ဖိုင်များ ထည့်သွင်းရာတွင် အောက်ပါ စည်းမျဥ်များနှင့် ကန့်သတ်ချက်များ ရှိသည် -
- ဖိုင်အမျိုးအစား:
.jsonသို့မဟုတ်.txtဖိုင်များကိုသာ ပံ့ပိုးသည်။ မဟုတ်ပါက "မပံ့ပိုးသော ဖိုင်အမျိုးအစား — .json သို့မဟုတ် .txt ဖိုင်ကို ရွေးပါ။" ဟု ပြသမည်ဖြစ်သည်။ - ကုဒ်စနစ်: ဖိုင်များသည် UTF-8 encoded ဖြစ်ရမည်။ မဟုတ်ပါက "ဤဖိုင်သည် UTF-8 စာသားမဟုတ်သောကြောင့် ဤနေရာတွင် ဖွင့်၍မရပါ။" ဟု ပြသမည်ဖြစ်သည်။
- ဖိုင်ဆိုဒ် ကန့်သတ်ချက်: အမြင့်ဆုံး ထည့်သွင်းနိုင်သော ပမာဏမှာ 10 MiB ဖြစ်သည်။ ဖိုင်သည် သတ်မှတ်ချက်ထက် ကြီးပါက "ဖိုင်က ကြီးလွန်းပါသည် — ကန့်သတ်ချက်မှာ {limit} ဖြစ်သည်။" သို့မဟုတ် "ထည့်သွင်းမှုသည်
{limit}ထက် ကြီးနေပြီး ဤကိရိယာ လုပ်ဆောင်နိုင်သည်ထက် များနေပါသည်။" ဟု ပြသမည်ဖြစ်သည်။ - ဖတ်မရခြင်း: ဖိုင်ဖတ်၍မရပါက "ဤဖိုင်ကို ဖတ်၍မရပါ။ ထပ်မံရွေးချယ်ကြည့်ပါ။" ဟု ပြသမည်ဖြစ်သည်။
- လုပ်ဆောင်ချိန် ကန့်သတ်ချက်: JSON စစ်ဆေးခြင်း လုပ်ငန်းစဥ်သည် ကြာမြင့်လွန်းပါက "ဤ JSON ကို စစ်ဆေးရာတွင် ကြာလွန်းသဖြင့် ရပ်တန့်လိုက်ပါသည်။ ပိုသေးသော စာရွက်စာတမ်းဖြင့် စမ်းကြည့်ပါ။" ဟု ပြသမည်ဖြစ်သည်။
JSON ကို ပုံစံချခြင်းနှင့် ချုံ့ခြင်း (Minify)
ဖတ်ရှုရ ခက်ခဲသော JSON ဒေတာများကို "အကွာအဝေး (Indentation)" အဆင့် ရွေးချယ်၍ "ပုံစံချရန်" ကို နှိပ်ခြင်းဖြင့် လှပစွာ ပြင်ဆင်နိုင်သည်။ လုပ်ဆောင်ပြီးပါက "JSON ပုံစံချပြီးပါပြီ။" ဟု ပြသမည်ဖြစ်သည်။
ဒေတာ သိမ်းဆည်းမှု ပမာဏ လျှော့ချရန် သို့မဟုတ် ကွန်ရက်ချိတ်ဆက်မှုတွင် ပေးပို့မှု မြန်ဆန်စေရန်အတွက် "ချုံ့ရန် (Minify)" ကို အသုံးပြုနိုင်သည်။ ဤလုပ်ဆောင်ချက်သည် မူရင်း JSON ဒေတာကို မထိခိုက်စေဘဲ မလိုအပ်သော space များနှင့် စာကြောင်းခြားမှုများကို ဖယ်ရှားပေးပြီး "JSON ကို ချုံ့လိုက်ပါပြီ (Minified)။" ဟု ပြသမည်ဖြစ်သည်။
"ကီးများ စီစဥ်ရန်" ခလုတ်ကို နှိပ်ပါက အရာဝတ္ထုကီးများကို ကုဒ်ပွိုင့်အစီအစဥ်အတိုင်း ထပ်ကာထပ်ကာ စီစဥ်ပေးသည်။ သို့သော် array အစီအစဥ်သည် ဘယ်တော့မှ မပြောင်းလဲပါ။ ၎င်းကို လုပ်ဆောင်ပြီးပါက "ကီးများ စီစဥ်ပြီးပါပြီ — array အစီအစဥ် မပြောင်းလဲပါ။ ပြန်ဖျက်ရန် Ctrl/Cmd+Z နှိပ်ပါ။" ဟု ပြသမည်ဖြစ်သည်။
သစ်ပင်ပုံစံ (Tree View) ဖြင့် ကြည့်ရှုခြင်းနှင့် ရှာဖွေခြင်း
ဒေတာများကို စာသားအပြင် "သစ်ပင်ပုံစံ" ဖြင့်လည်း အပြန်အလှန် တုံ့ပြန်ကြည့်ရှုနိုင်သည်။ သို့သော် JSON သည် မမှန်ကန်ပါက "သစ်ပင်ပုံစံ (Tree) ဖြင့် ကြည့်ရှုရန် JSON ကို ပြင်ဆင်ပါ။" ဟု ပြသမည်ဖြစ်ပြီး၊ JSON အလွန်ကြီးမားပါက "ဤ JSON သည် သစ်ပင်ပုံစံ (Tree) ဖြင့် ပြသရန် အလွန်ကြီးမားနေပါသည်။" သို့မဟုတ် "ဤ JSON တွင် သစ်ပင်ပုံစံဖြင့် ပြသ၍မရနိုင်လောက်အောင် တန်ဖိုးများ များလွန်းနေသည်။" ဟု ပြသမည်ဖြစ်သည်။
သစ်ပင်ပုံစံတွင် အောက်ပါ လုပ်ဆောင်ချက်များ ပါဝင်သည် -
- ရှာဖွေခြင်း: "Key များနှင့် တန်ဖိုးများကို ရှာဖွေပါ" အကွက်တွင် ရိုက်ထည့်၍ ရှာဖွေနိုင်ပြီး ကိုက်ညီမှု အရေအတွက်ကို "{total} ခုအနက် {current}" သို့မဟုတ် "{total}+ ခုအနက် {current}" ဟု ပြသပေးသည်။ ကိုက်ညီမှုမရှိပါက "ကိုက်ညီမှု မရှိပါ" ဟု ပြသမည်ဖြစ်သည်။
- ဖြန့်ခြင်းနှင့် ခေါက်ခြင်း: "အားလုံး ဖြန့်ရန်" နှင့် "အားလုံး ခေါက်ရန်" ခလုတ်များကို အသုံးပြုနိုင်သည်။ အလွန်ကြီးမားသော JSON ဖြစ်ပါက "ဤ JSON သည် အပြည့်ဖြန့်၍မရနိုင်လောက်အောင် ကြီးမားနေသည် — ပထမ
{count}တန်းကို ပြသထားသည်။" ဟု ပြသမည်ဖြစ်သည်။ - ဒေတာ ကူးယူခြင်း: သစ်ပင်ပုံစံရှိ သော့ချက်တစ်ခုချင်းစီအတွက် "တန်ဖိုးကို ကူးယူရန်"၊ "JSON Pointer ကူးယူရန်" သို့မဟုတ် "JSONPath ကူးယူရန်" စနစ်များဖြင့် တန်ဖိုးများကို ကူးယူနိုင်သည်။
JSON အမှားများကို ရှာဖွေခြင်းနှင့် ပြင်ဆင်ခြင်း
ထည့်သွင်းထားသော JSON တွင် အမှားအယွင်းရှိပါက "မမှန်ကန်သော JSON" ဟု ပြသပြီး အမှားရှိသည့် နေရာကို "စာကြောင်း {line}၊ ကော်လံ {col}" ပုံစံဖြင့် ညွှန်ပြပေးသည်။ အသုံးပြုသူသည် "အမှားဆီသို့ သွားရန်" ခလုတ်ကို နှိပ်၍ အမှားရှိရာသို့ တိုက်ရိုက်သွားနိုင်သည်။
ဤကိရိယာသည် အောက်ပါ အမှားအယွင်းများကို ထောက်လှမ်းဖော်ပြပေးနိုင်သည် -
- "အချက်များကြားတွင် ကော်မာ ကျန်နေသည်"
- "ပိတ်ကွင်းရှေ့တွင် ကော်မာ ပိုနေသည်"
- "Object key များကို double quote များဖြင့် ရေးရမည်"
- "Property အမည်နောက်တွင် colon ကျန်နေသည်"
- "String တစ်ခု၏ ပိတ် quote ကျန်နေသည်"
- "JSON သည် စောလွန်းစွာ ပြီးဆုံးနေသည် — ဖြတ်တောက်ခံထားရပုံရသည်"
- "တန်ဖိုးရှိသင့်သည့်နေရာတွင် မမျှော်လင့်သော စာလုံးရှိနေသည်"
- "ဤ JSON သည် လုပ်ဆောင်၍မရနိုင်လောက်အောင် အလွှာနက်လွန်းသည်"
- "ထပ်နေသော key
{key}— ဖော်မတ်မလုပ်မီ တစ်ခုကို ဖယ်ရှားပါ" (ဤကိရိယာသည် ထပ်နေသော key များကို အလိုအလျောက် ပေါင်းစည်းခြင်း မပြုဘဲ အမှားအဖြစ် ပြသသည်)။
ထို့အပြင် JSON မဟုတ်သော အခြားပုံစံကွဲများကိုလည်း ထောက်လှမ်းနိုင်ပြီး "ပြင်ဆင်မှုကို အစမ်းကြည့်ရန်" ခလုတ်ဖြင့် ပြင်ဆင်နိုင်သည်။ ၎င်းတို့မှာ -
- Markdown code fence: "ဤအရာသည် Markdown ကုဒ်ဘောင်အတွင်းရှိ JSON ဖြစ်ပုံရသည်။" (အသုံးပြုလျှင် ဘောင်အတွင်းရှိ JSON ကိုသာ ထားရှိမည်။)
- Escaped JSON: "ဤအရာသည် စာကြောင်းတစ်ခုအတွင်း escape လုပ်ထားသော JSON ဖြစ်ပုံရသည်။" (အသုံးပြုလျှင် စာကြောင်းကို unescape လုပ်ပြီး ရိုးရိုး JSON ဖြစ်လာမည်။)
- Python dictionary: "ဤအရာသည် JSON မဟုတ်ဘဲ Python ပုံစံ dictionary ဖြစ်ပုံရသည်။" (အသုံးပြုလျှင် ကိုးကားသင်္ကေတများနှင့် True/False/None ကို JSON အဖြစ် ပြန်ရေးမည်။)
- JSON Lines: "ဤအရာသည် JSON Lines ဖြစ်ပုံရသည် — တစ်ကြောင်းလျှင် တန်ဖိုးတစ်ခု။" (အသုံးပြုလျှင် စာကြောင်းများကို JSON array တစ်ခုအဖြစ် စုစည်းမည်။)
- JSONP callback: "ဤအရာသည် JSONP callback ဖြင့် ထုပ်ပိုးထားသော JSON ဖြစ်ပုံရသည်။" (အသုံးပြုလျှင် callback အထုပ်ကို ဖယ်ရှားမည်။)
- JSONC: "ဤအရာသည် JSONC ဖြစ်ပုံရသည် — မှတ်ချက်များ သို့မဟုတ် နောက်ဆုံးကော်မာများ ပါသည်။ ရေးထုံးကို JSONC သို့ပြောင်းပါ သို့မဟုတ် ပြင်ဆင်မှုကို အသုံးပြုပါ။" (အသုံးပြုလျှင် မှတ်ချက်များနှင့် နောက်ဆုံးကော်မာများကို ဖယ်ရှားမည်။)
ပြင်ဆင်မှုကို အသုံးပြုပြီးပါက "ပြင်ဆင်မှုကို အသုံးပြုပြီးပါပြီ။ ပြန်ဖျက်ရန် Ctrl/Cmd+Z နှိပ်ပါ။" ဟု ပြသမည်ဖြစ်ပြီး၊ အလိုအလျောက် ပြင်၍မရပါက "ဤထည့်သွင်းမှုကို အလိုအလျောက် ပြင်၍မရပါ။" ဟု ပြသမည်ဖြစ်သည်။
အမေးနှင့်အဖြေများ (FAQ)
မေး။ ကျွန်ုပ်၏ JSON ကို ဆာဗာပေါ်သို့ တင်ပါသလား။ ဖြေ။ မရှိပါ။ ပုံစံချစနစ် (Formatter) သည် သင့်ဘရောက်ဇာထဲတွင်သာ အလုပ်လုပ်ပြီး သင့် JSON ကို မည်သည့်နေရာသို့မျှ ပေးပို့ခြင်းမရှိပါ။
မေး။ Minify သည် မည်သို့လုပ်ဆောင်သနည်း။ ဖြေ။ Minify လုပ်ဆောင်ချက်သည် မူရင်း JSON ဒေတာကို မထိခိုက်စေဘဲ မလိုအပ်သော space များနှင့် စာကြောင်းခြားမှုများကို ဖယ်ရှားပေးပါသည်။
မေး။ ဤကိရိယာသည် ကိန်းဂဏန်းအကြီးကြီးများကို တိကျစွာ ထိန်းသိမ်းပေးနိုင်ပါသလား။ ဖြေ။ ဟုတ်ကဲ့၊ ဤကိရိယာသည် တန်ဖိုးဆုံးရှုံးမှုမရှိဘဲ ကိန်းပြည့်အကြီးကြီးများ (Large integers) ကို မူမပျက် ထိန်းသိမ်းပေးပါသည်။
မေး။ ထပ်နေသော Key များ ပါဝင်နေပါက မည်သို့ဖြစ်မည်နည်း။ ဖြေ။ JSON ထဲတွင် ထပ်နေသော key များ ပါဝင်နေပါက ၎င်းတို့ကို အလိုအလျောက် ပေါင်းစည်းခြင်း သို့မဟုတ် ဖယ်ထုတ်ခြင်း မပြုလုပ်ဘဲ အမှားအဖြစ်သာ ပြသမည်ဖြစ်သည်။