English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP JSON

Uma das usos comuns do JSON é enviar dados para o servidor web/Ler dados do servidor web e exibir dados em uma página web.

Este capítulo ensina como trocar dados JSON entre o cliente e o servidor PHP.

funções JSON do PHP

PHP5.2.0 e versões posteriores já têm a extensão JSON integrada.

O PHP possui as seguintes funções integradas para lidar com JSON:

funçãodescrição
json_encode()retorna a representação JSON do valor
json_decode()解析JSON字符串
json_last_error()retorna o último erro ocorrido

função json_encode()

Pode usar a função PHP para converter um objeto PHP em JSON com json_encode().

O arquivo fornecido por json_demo1.php para salvar:

  <?php
  $myObj = new stdClass();
  $myObj->name = "Seagull";
  $myObj->age = 22;
  $myObj->city = "New Delhi";
  $myJSON = json_encode($myObj);  /* Converter um objeto PHP em uma string JSON */
  
  echo $myJSON;
  ?>

O exemplo a seguir é baseado no exemplo anterior de pedir um arquivo PHP (json_demo1.php), em seguida, usar JSON.parse() para converter a resposta em um objeto JavaScript:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myObj = JSON.parse(this.responseText); // Converter uma string JSON em um objeto
      document.getElementById("output").innerHTML = myObj.name;
   }
});
httpRequest.open("GET", "json_demo1.php", true);
httpRequest.send();
Testar e Verificar‹/›

Usando a função PHP, o array PHP também será convertido em JSON com json_encode().

O arquivo fornecido por json_demo2.php para salvar:

  <?php
  $myArr = array("Seagull", "Cynthia", "Tarush");
  $myJSON = json_encode($myArr);  /* Converter um array PHP em uma string JSON */
  
  echo $myJSON;
  ?>

O exemplo a seguir é baseado no exemplo anterior (json_demo2pedir um arquivo PHP e, em seguida, usar JSON.parse() para converter a resposta em um array de JavaScript:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myArr = JSON.parse(this.responseText); // Converter Stringa JSON em Array
      document.getElementById("output").innerHTML = myArr[0];
   }
});
httpRequest.open("GET", "json_demo2.php", true);
httpRequest.send();
Testar e Verificar‹/›

Função json_decode()

A Stringa JSON pode ser convertida em Objeto PHP usando a função json_decode().

O arquivo especificado é salvo por json_demo.php:

  <?php
  $q = $_REQUEST["q"];  // Obter Parâmetro q da URL
  $obj = json_decode($q, false); // Converter Stringa JSON em Objeto PHP
  echo $obj->name."\u00A0\u00A0\u00A0\u00A0居住在\u00A0\u00A0".$obj->city.".";
  ?>

O seguinte exemplo converte um objeto JavaScript em Stringa JSON e envia-a para o servidor (demo_json.php):

var myObj = {\"name\":\"Seagull\",\"age\": 22,\u00A0city:\"New\u00A0Delhi\"};
var myJSON = JSON.stringify(myObj);
window.location = "json_demo.php?q=" + myJSON;
Testar e Verificar‹/›

Pode-se usar a função para converter Stringa JSON em Array PHP json_decode().

<?php
$q = $_REQUEST["q"];  //Obter Parâmetro q da URL
$arr = json_decode($q, true); // Converter Stringa JSON em Array PHP
echo $arr["name"]."\u00A0\u00A0\u00A0居住在\u00A0\u00A0".$arr["city"].".";
?>