2
我需要使用Symfony將一組PHP關聯數組序列化爲JSON。其中一些陣列恰好是空的。如何讓Symfony將空關聯數組序列化爲空的JSON對象?
這意味着包含數據的所有數組都將被序列化爲JSON對象,而所有空數組將被序列化爲JSON空數組。因爲我想避免檢查某個對象或數組是否是某個對象或數組,所以我寧願將所有數組(無論是否爲空)都序列化爲JSON對象而不是數組。
我如何用Symfony 2實現這一點?
我需要使用Symfony將一組PHP關聯數組序列化爲JSON。其中一些陣列恰好是空的。如何讓Symfony將空關聯數組序列化爲空的JSON對象?
這意味着包含數據的所有數組都將被序列化爲JSON對象,而所有空數組將被序列化爲JSON空數組。因爲我想避免檢查某個對象或數組是否是某個對象或數組,所以我寧願將所有數組(無論是否爲空)都序列化爲JSON對象而不是數組。
我如何用Symfony 2實現這一點?
Symfony 2允許您將上下文傳遞給序列化程序,您可以在其中設置序列化選項。我在官方文檔中找不到這個,但在查看源代碼時看到了它。
爲了序列化空的PHP數組以清空JSON對象,您需要將一個標誌傳遞給json_encode
(這是Symfony JSON編碼器使用的標誌)。您可以傳遞任意標誌,基本上json_encode
接受的所有選項。
它的工作原理是這樣的:
$serializer->serialize($myObject, "json", ["json_encode_options" => JSON_FORCE_OBJECT])
但如果$ myObject的擁有也不錯陣列像[「笑」,「富」]比將被轉換爲醜{「0」:「笑」,「 1「:」foo「} – errogaht 2017-08-17 04:57:33
@errogaht的確,但這不是一個關聯數組。 – Chris 2017-08-17 05:16:39
理想的解決方案是: 1.將空數組序列化到{} 2.將非真數組序列化爲數組[1,2,3,4] 3.應用程序 中的所有類型的一段代碼,但是i認爲這是不可能的:( – errogaht 2017-08-17 05:21:23