回覆列表
-
1 # 冰雪緣
-
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字串再返回。
json資料怎麼樣才算規範?
$array=array();
print_r(json_encode($array));
真是怪了,你是看json來開發的,還是看文件開發的?