⊗jsSpExcJSE 149 of 294 menu

JavaScript တွင် JSON နှင့် ခြွင်းချက်ဥပမာ

ကျွန်ုပ်တို့ထံသို့ အပြင်လောကတစ်ခုခုမှ ထုတ်ကုန်တစ်ခုနှင့်အတူ JSON ရောက်လာသည်ဆိုပါစို့:

let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount);

JSON.parse method သည် JSON မမှန်ကန်ပါက ခြွင်းချက်တစ်ခုကိုပစ်မည်ဆိုသည်ကို သင်သိပြီးဖြစ်သည်။ ထိုခြွင်းချက်ကို ဖမ်းကြည့်ကြပါစို့:

try { let json = '{"product": "apple", "price": 1000, "amount": 5}'; let product = JSON.parse(json); alert(product.price * product.amount); } catch (error) { // ခြွင်းချက်ကို တစ်နည်းနည်းဖြင့် တုံ့ပြန်ပါ }

သို့သော်၊ JSON ကိုယ်တိုင်က မှန်ကန်နေသော်လည်း ကျွန်ုပ်တို့လိုအပ်သောအကွက်များ မပါဝင်သည့်အခြေအနေမျိုးရှိနိုင်သည်၊ ဥပမာအားဖြင့်၊ စျေးနှုန်းအကွက်မရှိခြင်း:

let json = '{"product": "apple", "amount": 5}'; // စျေးနှုန်းမရှိ

၎င်းသည်လည်း ခြွင်းချက်ကြုံရနိုင်သောအခြေအနေတစ်ခုဖြစ်သည်ဟု ဆိုကြပါစို့။ ထိုသို့သောအခြေအနေတွင် ကျွန်ုပ်တို့၏ ကိုယ်ပိုင်အသုံးပြုသူခြွင်းချက်ကို ပစ်မည်ဖြစ်သည်:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'ထုတ်ကုန်တွင် စျေးနှုန်း သို့မဟုတ် အရေအတွက် မရှိပါ' }; } } catch (error) { // ခြွင်းချက်ကို တစ်နည်းနည်းဖြင့် တုံ့ပြန်ပါ }

ယခုအခါ catch ဘလောက်သည် ခြွင်းချက်အမျိုးအစားနှစ်မျိုးရရှိမည်: JSON သည်လုံးဝမမှန်ကန်ပါက၊ SyntaxError အမျိုးအစားခြွင်းချက်ဖြစ်မည်။ သို့မဟုတ် JSON သည်မှန်ကန်သော်လည်း ကျွန်ုပ်တို့လိုအပ်သောအကွက်များမပါဝင်ပါက၊ ProductCostError အမျိုးအစားခြွင်းချက်ဖြစ်မည်။

catch ဘလောက်အတွင်းတွင် ထိုခြွင်းချက်အမျိုးအစားများကို ဖမ်းယူကြပါစို့:

try { let json = '{"product": "apple", "amount": 5}'; let product = JSON.parse(json); if (product.price !== undefined && product.amount !== undefined) { alert(product.price * product.amount); } else { throw { name: 'ProductCostError', message: 'ထုတ်ကုန်တွင် စျေးနှုန်း သို့မဟုတ် အရေအတွက် မရှိပါ' }; } } catch (error) { if (error.name == 'SyntaxError') { alert('မမှန်ကန်သော ထုတ်ကုန် JSON'); } else if (error.name == 'ProductCostError') { alert('ထုတ်ကုန်တွင် စျေးနှုန်း သို့မဟုတ် အရေအတွက် မရှိပါ'); } }

သင့်ထံသို့ ဤကဲ့သို့ပုံစံရှိသော JSON ရောက်လာသည်ဆိုပါစို့:

let json = `[ { "name": "user1", "age": 25, "salary": 1000 }, { "name": "user2", "age": 26, "salary": 2000 }, { "name": "user3", "age": 27, "salary": 3000 } ]`;

ခွဲခြမ်းစိတ်ဖြာသည့်အခါ ဤ JSON ၏ယေဘုယျမှန်ကန်မှုကို စစ်ဆေးပါ။ ခွဲခြမ်းစိတ်ဖြာပြီးနောက် ရလဒ်အဖြစ် array တစ်ခုရရှိကြောင်း၊ အခြားအရာတစ်ခုမဟုတ်ကြောင်း စစ်ဆေးပါ။ ရလဒ်အဖြစ် array မဟုတ်ပါက - ခြွင်းချက်တစ်ခုကို ပစ်ပါ။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်