Usando JSON com o PHP
Comecei a querer saber mais sobre JSON, quando comecei a analisar a comunicação que o Meebo.com fazia enquanto eu conversava com outras pessoas no MSN e GTalk usando ele. Vi que havia um certo padrão na comunicação, algo como o projeto JSON-RPC define:
Note a facilidade de comunicação, criada pelo padrão, entre client e server. JSON, notação do objeto JavaScript, pode ser usado para o intercâmbio de dados leves entre o javascript e outras linguagens.
Desde que o JSON possa ser diretamente executado em JavaScript, é um formato ideal para usar com interfaces Web 2.0; é uma alternativa mais simples do que usar XML para relações com AJAX. Fácil para humanos entenderem e ótimo para máquinas interpretarem.
Abaixo um exemplo de uso do Servico_JSON no php:
O resultado na proxima pagina.
--> {“method”: “postMessage”, “params”: [“Hello all!”], “id”: 99} <-- {“result”: 1, “error”: null, “id”: 99} <–- {“method”: “handleMessage”, “params”: [“user1″, “we were just talking”], “id”: null} <–- {“method”: “handleMessage”, “params”: [“user3″, “sorry, gotta go now, ttyl”], “id”: null} –-> {“method”: “postMessage”, “params”: [“I have a question:”], “id”: 101} <-— {“method”: “userLeft”, “params”: [“user3″], “id”: null} <–- {“result”: 1, “error”: null, “id”: 101}
Note a facilidade de comunicação, criada pelo padrão, entre client e server. JSON, notação do objeto JavaScript, pode ser usado para o intercâmbio de dados leves entre o javascript e outras linguagens.
Desde que o JSON possa ser diretamente executado em JavaScript, é um formato ideal para usar com interfaces Web 2.0; é uma alternativa mais simples do que usar XML para relações com AJAX. Fácil para humanos entenderem e ótimo para máquinas interpretarem.
Abaixo um exemplo de uso do Servico_JSON no php:
<?php // O cerebro include(‘JSON.php’); // Um classe qualquer, apenas para entender-mos o funcionamento class Chamado { // Propriedades public $id; public $atendente_id; public $tramites; public $assunto_principal; // Construtor public function __construct() { $this->id = 9999; $this->atendente_id = 9999; $this->tramites = array(1, 5, 10); $this->assunto_principal = ‘Oi eu sou um chamado teste’; } // Metodo qualquer public function ver() { echo ‘[’ . $this->id . ‘]’ . $this->atendente_id . ‘ - ‘ . $this->assunto_principal; } } $chamado = new Chamado(); $json = new Services_JSON(); // Vai mostrar o codigo em JSON echo $chamado = $json->encode($chamado).“\n“; // Vai recuperar os dados $chamado2 = $json->decode($chamado); // Note que o objeto e o padrao print_r($chamado2); // Tentativa de se chamar um metodo recuperado $chamado2->ver(); ?>
O resultado na proxima pagina.
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