လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP 5.4+ တွင် JSON_DECDEDED ၏အင်္ဂါရပ်အသစ်များကဘာတွေလဲ။ developer များသိရှိရန်အပြောင်းအလဲများ

PHP 5.4+ တွင် JSON_DECDEDED ၏အင်္ဂါရပ်အသစ်များကဘာတွေလဲ။ developer များသိရှိရန်အပြောင်းအလဲများ

gitbox 2025-08-26

1 ။ json_bigint_as_string စဉ်ဆက်မပြတ်

PHP 5.4 မတိုင်မီက JSON_Decode သည် အလွန်ကြီးမားသောကိန်းတစ်ခုနှင့်ကြုံတွေ့ရသောအခါ၎င်းသည်အချက်အလက်ဆုံးရှုံးမှုကိုဖြစ်ပေါ်စေနိုင်သည့် floating type တစ်ခုသို့ပြောင်းလဲခဲ့သည်။ ဥပမာ JSON တွင်နံပါတ်အမြောက်အများရှိလျှင် -

 <span><span><span class="hljs-punctuation">{</span></span><span>
    </span><span><span class="hljs-attr">"big_number"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-number">12345678901234567890</span></span><span>
</span><span><span class="hljs-punctuation">}</span></span><span>
</span></span>

PHP 5.3 နှင့်အထက်တွင်ဤနံပါတ်သည် JSONS_Decode ကို ခေါ်သည့်အခါဤနံပါတ်သည် floating type ဖြစ်လာနိုင်ပြီးတိကျမှန်ကန်မှုကိုဆုံးရှုံးသွားလိမ့်မည်။ PHP 5.4 သည် json_bigint_as_string စဉ်ဆက်မပြတ်မိတ်ဆက်ပေးသည်။ သင်ဤစဉ်ဆက်မပြတ်သတ်မှတ်သည့်အခါ JSON_DECode သည် ကြီးမားသောကိန်းဂဏန်းများကိုကြိုးမဲ့အမျိုးအစားများအဖြစ်ပြောင်းလဲပစ်မည့်အစားကြိုးများကိုကြိုးများအဖြစ်လုပ်ဆောင်လိမ့်မည်။ ၎င်းသည်တိကျမှန်ကန်မှုကင်းမဲ့ခြင်း၏ပြ problem နာကိုရှောင်ရှားသည်။

ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"big_number": 12345678901234567890}'</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_BIGINT_AS_STRING);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'big_number'</span></span><span>];  </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "12345678901234567890"</span></span><span>
</span></span>

ဤနည်းလမ်းသည်အထူးသဖြင့်ဘဏ် finance ာရေး, သိပ္ပံဆိုင်ရာကွန်ပျူတာနှင့်အခြားကွက်လပ်များကိုကိုင်တွယ်ရန်လိုအပ်သည့် application များအတွက်အထူးသဖြင့်သင့်တော်သည်။

2 ။ JSON_PRETTY_PRPRINT format

JSON_PRETTY_RPRINPRINPING CANTANTANT သည် PHP 5.3 အဖြစ်စောစောစီးစီးတည်ရှိခဲ့သော်လည်း JSONS_Decode function တွင်၎င်း၏အပြုအမူသည်ပြောင်းလဲသွားသည်။ PHP 5.4 တွင် JSON_PRETTY_PRPRING သည် JSONS_CENDOTEDART function ၏ရလဒ်ပုံစံကိုအဓိကသက်ရောက်စေသည်။ သို့သော်ဤစဉ်ဆက်မပြတ်၏အခန်းကဏ်ကိုနားလည်ရန်အရေးကြီးသည်, ၎င်းသည် devics များကို developer များကို JSO Data ၏ဖွဲ့စည်းတည်ဆောက်ပုံကိုပိုမိုလွယ်ကူစွာနားလည်ရန်နှင့်နားလည်ရန်ကူညီပေးသည်။

ဥပမာအားဖြင့်, JSOS_CECDEDEDED ကို JSON_PRETTY_PRINT အစဉ်ဆက်မပြတ်နှင့် တွဲဖက်. အသုံးပြုသည်။

 <span><span><span class="hljs-variable">$array</span></span><span> = </span><span><span class="hljs-keyword">array</span></span><span>(</span><span><span class="hljs-string">'foo'</span></span><span> =&gt; </span><span><span class="hljs-string">'bar'</span></span><span>, </span><span><span class="hljs-string">'baz'</span></span><span> =&gt; </span><span><span class="hljs-string">'qux'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">json_encode</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, JSON_PRETTY_PRINT);
</span></span>

ရလဒ်ရလဒ် -

 <span><span><span class="hljs-punctuation">{</span></span><span>
    </span><span><span class="hljs-attr">"foo"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"bar"</span></span><span><span class="hljs-punctuation">,</span></span><span>
    </span><span><span class="hljs-attr">"baz"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"qux"</span></span><span>
</span><span><span class="hljs-punctuation">}</span></span><span>
</span></span>

JSON_Decode ကိုယ်တိုင်သည် JSON strings ကို format မလုပ်မိသော်လည်း developer များသည် output ကိုပိုမိုဖော်ရွေပြီးဖတ်ရန်သေချာစေရန် JSONS_CECDEDED လုပ်သည့်အခါ၎င်းကိုအသုံးပြုနိုင်သည်။

3 ။ REQUESIVERAD Array နှင့်အရာဝတ်ထုများ၏အပြောင်းအလဲနဲ့

PHP 5.4 သည် JSONS_Decode ၏ recursive ခွဲခြမ်းစိတ်ဖြာနိုင်စွမ်းကိုပိုမိုကောင်းမွန်စေသည်။ ယခုတွင် JSON string တွင်အသိုက် arrays သို့မဟုတ်အရာဝတ်ထုများပါ 0 င်ပါက JSON_DECode တွင်ဤ recursive struck များကိုပိုမိုနားလည်သဘောပေါက်ခြင်းဖြစ်ပြီးပိုမိုရှုပ်ထွေးသော JSONSA ၏အချက်အလက်များကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာနိုင်သည်။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"person": {"name": "John", "age": 30}, "address": {"city": "New York", "zip": "10001"}}'</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-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$data</span></span><span>);
</span></span>

ထုတ်လုပ်မှု -

 <span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
    [person] =&gt; </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [name] =&gt; John
            [age] =&gt; </span><span><span class="hljs-number">30</span></span><span>
        )
    [address] =&gt; </span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
        (
            [city] =&gt; New York
            [zip] =&gt; </span><span><span class="hljs-number">10001</span></span><span>
        )
)
</span></span>

ဤတိုးတက်မှုသည် developer များအနေဖြင့် developer များကိုအသိုက်ဖွဲ့စည်းပုံ၏ရှုပ်ထွေးမှုနှင့် ပတ်သက်. စိုးရိမ်ပူပန်မှုများကိုရှောင်ရှားရန်ခွင့်ပြုသည်။

4 ။ UTF-8 encoding strings ကိုထောက်ပံ့ပါ

PHP 5.4 ရှိ JSON_Decode function သည် json strings မဟုတ်သော json strings မဟုတ်သော json strings များပြုလုပ်ရာတွင် UTF-8 encoding ကိုတိုးမြှင့်ပေးသည်။ JSON_Decode သည် PHP 5.3 နှင့်အထက်တွင် PHP 5.4 တွင် PHP 5.4 တွင် PHP 5.4 တွင် PHP 5.4 ကိုထောက်ခံသည်။

ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name": "José"}'</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">echo</span></span><span> </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>];  </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "José"</span></span><span>
</span></span>

ဤတိုးတက်မှုသည်အထူးဇာတ်ကောင်များပါ 0 င်သည့် JSON ဒေတာများကိုထုတ်လုပ်သည့်အခါ developer များမမျှော်လင့်သောခွဲခြမ်းစိတ်ဖြာမှုများသို့မဟုတ် encoding ပြ issues နာများကိုမခံစားရကြောင်းသေချာသည်။

5 ။ အမှားကိုင်တွယ်အတွက်တိုးတက်မှု

PHP 5.4 သည် JSONS_DECode functions ကိုအမှားကိုင်တွယ်ပုံတွင်အချို့သောအကောင်းမြင်မှုများပြုလုပ်ခဲ့သည်။ JSONS_DECODEDEDES မအောင်မြင်သည့်အခါ Null ပြန်လာသည်။ သို့သော်အသေးစိတ်အချက်အလက်များကိုပိုမိုအသေးစိတ်အချက်အလက်များရရန် JSONS_LAST_ERRORRORR () function ကိုသုံးနိုင်သည်။ PHP 5.4 မတိုင်မီအမှားသတင်းသည်အလွန်ရိုးရှင်းပြီး developer များကအမှားအယွင်းများ၏သတ်သတ်မှတ်မှတ်အကြောင်းရင်းကိုဆုံးဖြတ်ရန်ခက်ခဲနိုင်သည်။ ယခု PHP 5.4 သည် developer များပိုမိုတိကျစွာနေရာချထားရန်ကူညီနိုင်သည့်အမှားကုဒ်များကိုပိုမိုပေးသည်။

ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$json</span></span><span> = </span><span><span class="hljs-string">'{"name": "John", "age":}'</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">$json</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$data</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>) {
    </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-comment">// ထုတ်လုပ်ခြင်း详细的错误信息</span></span><span>
}
</span></span>

ဤနည်းအားဖြင့် developer များသည် JSON ဒေတာ၏ပုံစံပြ issues နာများကိုအလွယ်တကူခွဲခြား သတ်မှတ်. ဖြေရှင်းနိုင်သည်။