လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> JSON_DECODEDED function function ကိုပုံမှန်မဟုတ်သောပုံစံများဖြင့်မည်သို့ဖြစ်သနည်း, လက်တွေ့ကျသောအကြံပေးချက်များမှာအဘယ်နည်း။

JSON_DECODEDED function function ကိုပုံမှန်မဟုတ်သောပုံစံများဖြင့်မည်သို့ဖြစ်သနည်း, လက်တွေ့ကျသောအကြံပေးချက်များမှာအဘယ်နည်း။

gitbox 2025-06-22

PHP တွင် JSON_Decode function ကိုများသောအားဖြင့်စံပုံစံများနှင့်ကိုက်ညီသော JSON ဆင်ဆာများကို အသုံးပြု. PHP Data အမျိုးအစားများသို့ပြောင်းလဲရန်အသုံးပြုသည်။ Standard JSON strings သည်သော့ချက်အမည်ကို ( "" " ) ကို 0 င်စေရမည်ဟု string value သည်မှန်ကန်သော Unicode ဇာတ်ကောင်များဖြစ်ရမည်ဟု String သည်မှန်ကန်သော Unicode အက္ခရာများဖြစ်ရမည်။ JSON TRASS ကိုပုံမှန်ပုံစံအမျိုးမျိုးဖြင့်ကိုင်တွယ်ရန် JSOS_Decode function ကိုမည်သို့အသုံးပြုရမည်ကိုဤဆောင်းပါးသည်လေ့လာမည်။

1 ။ တစ်ခုတည်းကိုးကား JSON strings ကိုင်တွယ်

Standard JSONS strings သည်သော့ချက်အမည်များနှင့် string များကိုတန်ဖိုးထားရန်နှစ်ဆကိုးကားရန် ( "" ) လိုအပ်သည်။ PHP ၏ JSON_DECode သည် တစ်ခုတည်းသောကိုးကားချက်များကိုတိုက်ရိုက်မထောက်ပံ့ပါ။

ဥပမာ -

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">"{'name':'John', 'age':30}"</span></span><span>;
</span><span><span class="hljs-variable">$correctedJson</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</span></span><span>([</span><span><span class="hljs-string">"'"</span></span><span>, </span><span><span class="hljs-string">'"'</span></span><span>], [</span><span><span class="hljs-string">'"'</span></span><span>, </span><span><span class="hljs-string">'"'</span></span><span>], </span><span><span class="hljs-variable">$json</span></span><span>);
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$correctedJson</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

ဤဥပမာတွင် JSON_DECode သည် string ကိုချောချောမွေ့မွေ့ခွဲနိုင်အောင် string that throughts နှင့်အစားထိုးရန် strotplace function ကိုအသုံးပြုသည်။

2 ။ မပြည့်စုံသော JSON တပ်များကိုင်တွယ်ပါ

တခါတရံတွင်ကျွန်ုပ်တို့သည်ပျောက်ဆုံးနေသောပိတ်ထားသောကွင်းခတ်သို့မဟုတ်ကော်မာများကဲ့သို့သောမပြည့်စုံသော JSONS strings အချို့ကိုကျွန်ုပ်တို့ကြုံတွေ့ရနိုင်သည်။ ဒီလိုအခြေအနေမျိုးက JSON_Decode ကို Null ပြန်ပို့ဖို့ဖြစ်စေလိမ့်မယ်။ ၎င်းကိုကိုင်တွယ်ရန်ကျွန်ုပ်တို့သည်ပုံမှန်အသုံးအနှုန်းများ (သို့) ရိုးရှင်းသော string operations များကို အသုံးပြု. ဤမပြည့်စုံသောအစိတ်အပိုင်းများကိုပထမဆုံးဖြည့်စွက်နိုင်သည်။

ဥပမာ -

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name":"John", "age":30'</span></span><span>;  </span><span><span class="hljs-comment">// ပျောက်ဆုံးနေသောသတ္တုအထိမ်းအချုပ်</span></span><span>
</span><span><span class="hljs-variable">$fixedJson</span></span><span> = </span><span><span class="hljs-title function_ invoke__">rtrim</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-string">','</span></span><span>) . </span><span><span class="hljs-string">'}'</span></span><span>;  </span><span><span class="hljs-comment">// ပြုပြင်ခြင်း JSON ကြိုး</span></span><span>
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$fixedJson</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

ဤချဉ်းကပ်မှုဖြင့် JSON string တစ်ခုချင်းစီကိုကိုယ်တိုင်စစ်ဆေးပြီးခွဲခြမ်းစိတ်ဖြာမှုသေချာစေရန်ကျွန်ုပ်တို့ရှောင်ရှားနိုင်သည်။

3 ။ JSON strings အတွက်အပိုကော်မာကိုကိုင်တွယ်

အချို့သောစံသတ်မှတ်ထားသော JSONS strings များတွင် array သို့မဟုတ် object တစ်ခုတွင် element တစ်ခုအပြီးတွင်ကော်မာ ( ) ) အပိုရှိနိုင်သည်။ JSONCODED ကို မှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာနိုင်ရန်အတွက်ရိုးရှင်းသော string ကိုအစားထိုးခြင်း မှလွဲ. ပိုလျှံသောကော်မာများကိုဖျက်ပစ်နိုင်သည်။

ဥပမာ -

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name":"John", "age":30,}'</span></span><span>;  </span><span><span class="hljs-comment">// အပိုကော်မာ</span></span><span>
</span><span><span class="hljs-variable">$fixedJson</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preg_replace</span></span><span>(</span><span><span class="hljs-string">'/,\s*([}\]])/'</span></span><span>, </span><span><span class="hljs-string">'$1'</span></span><span>, </span><span><span class="hljs-variable">$json</span></span><span>);  </span><span><span class="hljs-comment">// အမြီးမှာပိုလျှံကော်မာဖယ်ရှားလိုက်ပါ</span></span><span>
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$fixedJson</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

ဤတွင် Preg_replace function ကိုအဆုံးတွင် Redundant ကော်မာများကိုရှာဖွေဖော်ထုတ်ရန်နှင့် JSON format ကိုအညီလိုက်လျောညီထွေဖြစ်အောင်ပြုလုပ်ရန်အသုံးပြုသည်။

4 ။ အထူးဇာတ်ကောင် encoding ပြ issues နာများကိုကိုင်တွယ်ပါ

JSON string တွင်တရုတ်ဇာတ်ကောင်များသို့မဟုတ် ASCII မဟုတ်သောဇာတ်ကောင်များကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်ပါက JSON_Decode function သည် encoding encoding unsions များကြောင့်ခွဲခြမ်းစိတ်ဖြာရန်ပျက်ကွက်နိုင်သည်။ JSON string သည် UTF-8 encoding နှင့်မှန်ကန်သောဇာတ်ကောင်အစုံကို အသုံးပြု. မှန်ကန်သောဇာတ်ကောင် set ကိုအသုံးပြုသည်။

ဥပမာ -

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name":"တရုတ်", "age":30}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>, </span><span><span class="hljs-number">512</span></span><span>, JSON_UNESCAPED_UNICODE);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

ဤဥပမာတွင် JSON_UNUSESSESSTED_UnCOUCODEDED OFF JSON_DECODED Parsing တွင် Unicode စာလုံးများကိုမလွတ်မြောက်စေဘဲမူရင်းဇာတ်ကောင် encoding ကိုစောင့်ရှောက်သည်။

5 ။ မသိသောသော့များကိုလျစ်လျူရှုပါ

တစ်ခါတစ်ရံတွင်မျှော်လင့်ထားသည့်သော့များသို့မဟုတ်မလိုလားအပ်သောလယ်ကွင်းများပါ 0 င်သည့်မျှော်လင့်ထားသည့်ဖွဲ့စည်းပုံနှင့်မကိုက်ညီသော json ကြိုးများကိုကြုံတွေ့ရသည်။ ဒုတိယ parameter ကိုဖြတ်သန်းခြင်းအားဖြင့် JSON string ကို associative string တစ်ခုအဖြစ်ခွဲခြမ်းစိတ်ဖြာနိုင်သည်

ဥပမာ -

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name":"John", "age":30, "extraField":"value"}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);  </span><span><span class="hljs-comment">// Associative Array အဖြစ်ဆုံးဖြတ်ပါ</span></span><span>
</span><span><span class="hljs-keyword">unset</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'extraField'</span></span><span>]);  </span><span><span class="hljs-comment">// မလိုလားအပ်သောလယ်ကွင်းများကိုဖျက်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

ဤကျင့်ထုံးသည် JSON string တွင်အချို့သောနယ်ပယ်များကိုလျစ်လျူရှုပြီးလိုအပ်သောအချက်အလက်များကိုသာဆက်လက်ထိန်းသိမ်းထားသည်ကိုပြသသည်။

6 ။ JSON_Decode ၏အမှားကိုင်တွယ်ကိုင်တွယ်ယန္တရားကိုသတ်မှတ်ပါ

ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအမှားတစ်ခုဖြစ်ပါက JSON_DECode သည် Null ပြန်လာမည်။ Code ၏ကြံ့ခိုင်မှုကိုတိုးတက်စေရန်အတွက်အမှားတစ်ခုသည်ခွဲခြမ်းစိတ်ဖြာခြင်းမပြုမီသို့မဟုတ်ပြီးနောက်အမှားတစ်ခုဖြစ်ပွားခြင်းရှိမရှိစစ်ဆေးရန်လိုအပ်သည်။ JSOS_LAST_ERRORRORRORRORRORRORRORR () json_last_error_error_Msg () functions များကို PHP သည် JSON parsing အတွက်အမှားသတင်းအချက်အလက်များရရှိရန်ဖြစ်သည်။

ဥပမာ -

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name":"John", "age":30}'</span></span><span>;
</span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$json</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">json_last_error</span></span><span>() !== JSON_ERROR_NONE) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"JSON အမှားကုဒ်: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
}
</span></span>

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် JSOR ၏ထူးခြားသောအမှားများကိုတိကျစွာဖမ်းယူနိုင်ပြီး၎င်းတို့အား၎င်းတို့အားပြုလုပ်နိုင်သည်။

ကောက်ချက်

JSON TRESS ကြိုးများဖြင့်စံသတ်မှတ်ချက်မဟုတ်သောပုံစံများဖြင့်ကိုင်တွယ်သောအခါ JSON_Decode function သည်အားကြီးသောပြောင်းလွယ်ပြင်လွယ်မှုကိုပေးသည်။ သော့ချက်မှာပြ problem နာကိုတိကျစွာခွဲခြားသတ်မှတ်ရန်နှင့်သင့်လျော်သောကိုင်တွယ်နည်းလမ်းများချမှတ်ရန်ဖြစ်သည်။ ဤဆောင်းပါးတွင်မျှဝေထားသောအချက်များအရသင် JSON အချက်အလက်များကိုပိုမိုထိရောက်စွာလုပ်ဆောင်နိုင်ပြီးသင်၏ကုဒ်၏ကြံ့ခိုင်မှုနှင့်တည်ငြိမ်မှုကိုတိုးတက်စေနိုင်သည်။