嘿,我想通過使用json_encode
以json格式回傳數據。PhP返回Json在[]
但是它好像又回到這樣的:
[{‘county’:’us’,’sector’:’retail’}]
但是終端用戶已經表示,他們希望沒有方括號的響應。
我該怎麼做?
謝謝。
嘿,我想通過使用json_encode
以json格式回傳數據。PhP返回Json在[]
但是它好像又回到這樣的:
[{‘county’:’us’,’sector’:’retail’}]
但是終端用戶已經表示,他們希望沒有方括號的響應。
我該怎麼做?
謝謝。
取決於您如何生成您編碼的值... json_encode
有一個選項JSON_FORCE_OBJECT
您可以使用,但從我可以看到,這可能不是你想要的,因爲在我看來這隻會將「方形括號「放入包裝對象中。不過,如果你想嘗試:
json_encode($value, JSON_FORCE_OBJECT);
編輯:正如其他人所說,這很可能是json_encode($value[0])
你想要什麼。
完美的JSON_FORCE_OBJECT似乎已經完成了這一招,謝謝你們 –
假設你的數組是:
$data = [
'country' => 'us',
'sector' => 'retail',
];
然後就返回一個json_encoded陣列像這樣:
json_encode($data);
// {"country":"us","sector":"retail"}
但是,如果與數據的數組是 「嵌套」 像這樣:
$data = [[
'country' => 'us',
'sector' => 'retail',
]];
然後返回它的編碼的第一個元素:
json_encode($data[0]);
// {"country":"us","sector":"retail"}
我對這種情況的體會是,您意外地將數據存儲爲數組的第一項。
例如,你可以這樣做:
$json_store = Array();
$json_store[] = Array('country' => 'us', 'sector' => 'retail');
$json = json_encode($json_store);
測試這一點的方法是看是否執行以下操作刪除括號:
$json_encode($json_store[0])
如果是這樣,你一個不必要的嵌套數組,你應該修復。使用上面的代碼可能應該避免,因爲最好先解決數據存儲的問題。
分享你的代碼你如何生成json? –
你能給我們一個你想要輸出的數組的例子嗎?另外有趣的是,將數組作爲json的第一層是可利用的。 [OWASP鏈接](https://www.owasp.org/index.php/AJAX_Security_Cheat_Sheet#Always_return_JSON_with_an_Object_on_the_outside) – Andrew
用'''?真?我想不出任何'json_encode'會這樣做。你也沒有包含[mcve]。我們無法解決您未向我們顯示的代碼問題。 – Quentin