Если суммировать то, что говорят здесь люди, json_decode / encode кажется быстрее, чем serialize / unserialize. НО Если вы будете var_dump, тип сериализованного объекта будет изменен. Если по какой-то причине вы хотите сохранить тип, перейдите к сериализации!
(попробуйте, например, stdClass vs array)
serialize / unserialize:
Array cache:
array (size=2)
'a' => string '1' (length=1)
'b' => int 2
Object cache:
object(stdClass)[8]
public 'field1' => int 123
This cache:
object(Controller\Test)[8]
protected 'view' =>
json encode / decode
Array cache:
object(stdClass)[7]
public 'a' => string '1' (length=1)
public 'b' => int 2
Object cache:
object(stdClass)[8]
public 'field1' => int 123
This cache:
object(stdClass)[8]
Как вы можете видеть, json_encode / decode преобразует все в stdClass, что не так уж хорошо, информация об объекте потеряна ... Поэтому решайте на основе потребностей, особенно если это не только массивы ...