今天在專案的時候,發現在解析json_decode的時候,發生錯誤.後來仔細檢視php關於php的json_encode()和json_decode()兩個函式,發現:
1、陣列轉換json(陣列為索引陣列)
array('a','b') ------>json_encode()---------->['a','b']
結果會轉換為json陣列
2、陣列轉換json(陣列為關聯陣列)
array('a','b') ------>json_encode()---------->{}'a','b'}
結果會轉換為json物件
3、json轉換為陣列
如果為json陣列,使用json_decode($json),結果為陣列
如果為json物件,使用json_decode($json),會報錯,應該再加乙個引數json_decode($json.true),即可。
詳情參考php函式
json_decode
( string$json
[,
bool$assoc
= false
[, int$depth
= 512
[, int$options
= 0
]]] )
json: 待解碼的json
string
格式的字串,
僅能處理 utf-8 編碼的資料
assoc: 當該引數為
true
時,將返回
array
而非 object
。depth :
指定遞迴深度。
options :
json解碼的掩碼選項。 現在有兩個支援的選項。 第乙個是
json_bigint_as_string
, 用於將大整數轉為字串而非預設的float型別。第二個是
json_object_as_array
, 與將assoc
設定為
true
有相同的效果。
php 陣列轉json物件 和json 陣列
php中陣列轉json的規則是 當沒有指定索引 0 n 時會轉換為json陣列,而指定了索引會轉換為json物件。php的陣列在轉json的時候,如果索引連續,則轉成陣列。如果索引不連續,則會轉成物件 1 沒有指定索引的情況 attr array a b c d e 轉換為json a b c d ...
json和json物件的相互轉換
j a物件轉為json資料 步驟 writevalue 引數,obj 引數為file 將obj 物件轉換為json字串,並儲存到指定的檔案中 引數為 writer 將obj物件轉換為json字串,並將 json 資料填充到字元輸出流中 引數為 outputstream 將 obj 對選哪個轉換為js...
php陣列與json的定義及相互轉換總結
json定義 json是一種資料交換格式,json格式只有四條規則。並列的資料之間用逗號 分隔 對映用冒號 表示 並列資料的集合 陣列 用方括號 表示 對映的集合 物件 用大括號 表示。總結 前兩條是用來描述乙個集合裡不同元素資料的表述,後兩條是描述不同的資料集合 所以,json共有兩種資料集合,一...