Desde a versão 5.4 do PHP ficou mais fácil transformar entidades em JSON através da função json_encode() . Basta implementar a interface JsonSerializable , no qual o único método que precisa ser implementado pela subclasse é o jsonSerialize .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class User implements \JsonSerializable {
private $username ;
private $firstName ;
private $lastName ;
...
public function jsonSerialize () {
return array (
'username' => $this -> username ,
'firstName' => $this -> firstName ,
'lastName' => $this -> lastName ,
'fullName' => " { $this -> firstName } { $this -> lastName } "
);
}
}
Serializando:
1
2
3
4
5
$user = new User ();
$user -> setUsername ( "rogeriolino" );
$user -> setFirstName ( "Rogério" );
$user -> setLastName ( "Lino" );
echo json_encode ( $user );
Resultado:
1
2
3
4
5
6
{
"username" : "rogeriolino" ,
"firstName" : "Rogério" ,
"lastName" : "Lino" ,
"fullName" : "Rogério Lino" ,
}
Essa implementação se torna muito útil para desenvolvimento de APIs RESTful e ajax responses (json response).