Usando JSON com o PHP
Aqui temos o resultado:
Note o erro. Esse erro é devido a ele não recuperar métodos do objeto. O ideal, é que quando se recupere um objeto, o mesmo seja criado novamente, e povoado com as propriedades recuperadas. Garantindo assim, a sua integridade.
Abaixo mostro um exemplo disso:
Agora veja o resultado:
{“id”:9999,“atendente_id”:9999,“tramites”:[1,5,10],“assunto_principal”:“Oi eu sou um chamado teste”} stdClass Object ( [id] => 9999 [atendente_id] => 9999 [tramites] => Array ( [0] => 1 [1] => 5 [2] => 10 ) [assunto_principal] => Oi eu sou um chamado teste ) Fatal error: Call to undefined method stdClass::ver() in C:htdocs este.php on line 33
Note o erro. Esse erro é devido a ele não recuperar métodos do objeto. O ideal, é que quando se recupere um objeto, o mesmo seja criado novamente, e povoado com as propriedades recuperadas. Garantindo assim, a sua integridade.
Abaixo mostro um exemplo disso:
<?php $chamado = new Chamado(); // Vamos alterar uns valores das propriedades $chamado->id = ‘lala’; $chamado->atendente_id = ‘lele’; $chamado->tramites = array(1,2,3,4,5,6); $chamado->assunto_principal = ‘Mudamos todos os valores!’; $json = new Services_JSON(); $json_chamado = $json->encode($chamado); unset($chamado); $chamado = new Chamado(); $decoded = $json->decode($json_chamado); foreach ($decoded as $propriedade => $valor) { $chamado->$propriedade = $valor; } print_r($chamado); // Agora o metodo funciona $chamado->ver(); ?>
Agora veja o resultado:
Chamado Object ( [id] => lala [atendente_id] => lele [tramites] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 ) [assunto_principal] => Mudamos todos os valores! ) [lala]lele - Mudamos todos os valores!
Lembrando que a partir do PHP 5.2 o JSON já vem nativo (http://br.php.net/manual/pt_BR/ref.json.php).
Apenas para completar seu exemplo, vou postar aqui como tratar o objeto no Javascript, já que vc falou do eval.
var JSONObject = eval('(' + respostaJSON + ')');
alert( JSONObject.assunto_principal ); // Saída: Oi eu sou um chamado teste