什麼是[在JSON之間不同{和之間是什麼不同{和[在PHP中json_encode JSON
模式1:
"cell": { "id": "3961" }
模式2:
"cell": [ "id": "3961" ]
如何我可以通過json_encode將模型1傳輸到2嗎?
什麼是[在JSON之間不同{和之間是什麼不同{和[在PHP中json_encode JSON
模式1:
"cell": { "id": "3961" }
模式2:
"cell": [ "id": "3961" ]
如何我可以通過json_encode將模型1傳輸到2嗎?
{
是一個對象, [
是一個數組。
在你的情況,第一個例子是一個普通的對象,其屬性名爲
JSON沒有關聯數組。第二個例子是無效的JSON。id
。第二個示例是
associative array,其索引爲
id
。
這是因爲JSON是JavaScript對象通知,JavaScript不知道關聯數組。相反,JavaScript允許您動態地將新屬性添加到對象,並允許您使用括號訪問任何對象屬性:Object['property']
。
所以,對象是JavaScript中的一類關聯數組,因此使用JSON。
由於json_encode()
函數編碼從提供的對象中創建JSON字符串,所以您需要傳遞一個對象而不是數組。
php > echo json_encode(array('a', 'b'));
["a","b"]
php > echo json_encode(array('a' => 'A', 'b' => 'B'));
{"a":"A","b":"B"}
[ - >數字陣列
{ - >關聯數組在PHP,對象在JavaScript
「的模式2」無效JSON。 JSON允許具有命名屬性的對象(您的「model 1」),但數組可能沒有命名鍵。
因此,json_encode
無法輸出您的「型號2」。
您的模型2無效JSON。 JSON數組不能包含密鑰,這就是JavaScript中的對象({"key":"value"}
)
但是,如果要創建數組而不是對象,則可以將JSON字符串解碼爲PHP的關聯數組(json_decode($json, TRUE)
)。
模型2無效JSON。你的意思是_「cell」:[{「id」:「3961」}] _? –
是的,#2是無效的JSON。 「{}」和「[]」之間的區別在於第一個表示「對象」(在許多計算機語言中翻譯爲「詞典」),而第二個表示「數組」。 –
ty男人我明白了。 – sweb