2016-01-24 54 views
2

我需要串行器來產生一個空對象。一般情況下我只是做Symfony串行器空對象

json_encode(new stdClass()) --> '{}'

但symfony的序列化程序

$this->get('serializer')->serialize(new \stdClass(), 'json')) --> '[]' 

我想這是因爲串行第一歸我的數據數組,在這種情況下是空的。

有沒有辦法找回json_encode的默認行爲?

回答

1

可以直接調用encode方法:

$this->get('serializer')->encode(new \StdClass(), 'json') 
+0

這做工作,如果響應僅爲標準的對象。 (我猜它只是json_encode()?)但實際上我首先獲取一些對象與教條,然後「混合」他們與一些默認值。所以我的新stdClass()只是最終的json的一部分。並用json_encode()序列化原則對象不起作用。 – skymeissner

+0

我認爲唯一的方法是編寫自己的或擴展現有的規範。如果它是stdClass的實例,則需要返回對象。 –