PHP 關於陣列和json的相互轉換

2021-08-15 19:54:35 字數 1116 閱讀 1576

今天在專案的時候,發現在解析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共有兩種資料集合,一...