回覆列表
  • 1 # 冰雪緣

    json資料怎麼樣才算規範?

    $array=array();

    print_r(json_encode($array));

    真是怪了,你是看json來開發的,還是看文件開發的?

  • 2 # 網路圈

    PHP作為當下主流的指令碼語言,因其簡單高效的特點備受關注,基於PHP開發的專案也是很多的,可以說PHP是作為Web開發的首選開發語言。但是PHP本身是弱型別語言,所以在某些地方的支援度上也是存在一些問題的,比如對於JSON的處理就存在一定的差異化。

    PHP弱型別可能會導致JSON返回時不夠標準

    PHP它是弱型別的指令碼語言,所以在輸出方面所有型別預設會被當成String輸出。可能有PHP開發者不太理解這句話,舉例來說:如果透過PHP從資料庫中查詢資料,那返回的資料其實都被當成了String型別,即使欄位型別是int、double這類的也會被當成String處理。

    在這種情況下,不同的開發者寫出來的JSON可能就存在差異,比如:

    {"name":"張三","age":22}

    {"name":"張三","age":"22"}

    另外在PHP環境下輸出物件型別的欄位時,也會出現問題,有些時候下會將{}返回成[],比如:

    {"name":"張三","info":{}}

    {"name":"張三","info":[]}

    上面例舉的這2個例子危害性很大,特別是作為API輸出時會讓呼叫方崩潰。

    PHP後端如何規範返回JSON?

    弱型別語言看似方便容錯性高,其實更容易出現Bug,這也是一些安全係數要求高的專案並不會採用PHP這類弱型別語言去開發的原因。

    那PHP在對JSON處理這塊應該怎麼做呢?我的建議就是定義好資料返回模板,然後進行資料填充生成JSON字串再返回。

  • 中秋節和大豐收的關聯?
  • 英雄聯盟單挑之王是誰,新手如何獲勝?