2015-02-05 57 views
2

我需要使用Symfony將一組PHP關聯數組序列化爲JSON。其中一些陣列恰好是空的。如何讓Symfony將空關聯數組序列化爲空的JSON對象?

這意味着包含數據的所有數組都將被序列化爲JSON對象,而所有空數組將被序列化爲JSON空數組。因爲我想避免檢查某個對象或數組是否是某個對象或數組,所以我寧願將所有數組(無論是否爲空)都序列化爲JSON對象而不是數組。

我如何用Symfony 2實現這一點?

回答

1

Symfony 2允許您將上下文傳遞給序列化程序,您可以在其中設置序列化選項。我在官方文檔中找不到這個,但在查看源代碼時看到了它。

爲了序列化空的PHP數組以清空JSON對象,您需要將一個標誌傳遞給json_encode(這是Symfony JSON編碼器使用的標誌)。您可以傳遞任意標誌,基本上json_encode接受的所有選項。

它的工作原理是這樣的:

$serializer->serialize($myObject, "json", ["json_encode_options" => JSON_FORCE_OBJECT]) 
+0

但如果$ myObject的擁有也不錯陣列像[「笑」,「富」]比將被轉換爲醜{「0」:「笑」,「 1「:」foo「} – errogaht 2017-08-17 04:57:33

+0

@errogaht的確,但這不是一個關聯數組。 – Chris 2017-08-17 05:16:39

+0

理想的解決方案是: 1.將空數組序列化到{} 2.將非真數組序列化爲數組[1,2,3,4] 3.應用程序 中的所有類型的一段代碼,但是i認爲這是不可能的:( – errogaht 2017-08-17 05:21:23

相關問題