Când codifica numai / serializarea un cuplu de obiecte / matrice, aș spune că diferența de viteză nu va fi atât de important: tu genherally nu va percepe.
Diferența este că serializare este făcută în special pentru PHP; de exemplu, informații sur ca clase nu sunt pierdute cu serializare, și pot fi recuperate atunci când unserializing.
Pe de altă parte, JSON nu este specifică PHP, ceea ce înseamnă că este un format bun schimb - utilizarea sa primară fiind acela de a face schimb de date între Javascript si PHP.
De exemplu, ia în considerare această bucată de cod:
class A {
public $a;
public function __construct($a) {
$this->a = $a;
}
}
$test = new A(10);
Acum, să serialize și testul $ unserialize:
var_dump(unserialize(serialize($test)));
Primim :
object(A)[2]
public 'a' => int 10
adică, un obiect, de exemplu de clasă A.
Acum, să facem același lucru cu JSON:
var_dump(json_decode(json_encode($test)));
Avem acum doar o instanță de stdClass:
object(stdClass)[2]
public 'a' => int 10
JSON este frumos de a face schimb de date (The nformation „clasa A“ este important pentru PHP, dar probabil nu are prea mult sens pentru o altă aplicație); dar are limitele sale prea.