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

JSON PHP

JSONの一般的な用途は、ウェブサーバーにデータを送信することです/ウェブサーバーからデータを読み取り、ウェブページにデータを表示します。

この章では、クライアントとPHPサーバー間でJSONデータを交換する方法について説明します。

PHP JSON関数

PHP5.2.0 及びその以降のバージョンでは、JSONエクステンションが内蔵されています。

PHPには以下のJSONを処理する内蔵関数があります:

機能説明
json_encode()返される値のJSON表現形式
json_decode()JSON文字列を解析します
json_last_error()最後に発生したエラーを返します

json_encode()関数

PHP関数を使用して、PHPのオブジェクトもJSON json_encode()に変換できます。

json_demo1.phpを保存します:

  <?php
  $myObj = new stdClass();
  $myObj->name = "Seagull";
  $myObj->age = 22;
  $myObj->city = "New Delhi";
  $myJSON = json_encode($myObj);  /* PHPオブジェクトをJSON文字列に変換します */
  
  echo $myJSON;
  ?>

以下の例は、上記の例からPHPファイル(json_demo1.php)をリクエストして、JSON.parse()を使用して応答をJavaScriptのオブジェクトに変換します:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myObj = JSON.parse(this.responseText); // JSON文字列をObjectに変換します
      document.getElementById("output").innerHTML = myObj.name;
   }
});
httpRequest.open("GET", "json_demo1.php", true);
httpRequest.send();
テストしてみる‹/›

PHP関数を使用して、PHPの配列もJSON json_encode()に変換されます。

json_demo2.phpを保存します:

  <?php
  $myArr = array("Seagull", "Cynthia", "Tarush");
  $myJSON = json_encode($myArr);  /* PHPの配列をJSON文字列に変換します */
  
  echo $myJSON;
  ?>

以下の例は、上記の例(json_demo2.php)をリクエストしてPHPファイルを要求し、JSON.parse()を使用して応答をJavaScriptの配列に変換します:

var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
   if (this.readyState === 4 && this.status === 200) {
      var myArr = JSON.parse(this.responseText); // JSON文字列を配列に変換する
      document.getElementById("output").innerHTML = myArr[0];
   }
});
httpRequest.open("GET", "json_demo2.php", true);
httpRequest.send();
テストしてみる‹/›

json_decode()関数

JSON文字列はfunctionを使用してPHPオブジェクトに変換できますjson_decode()。

指定されたファイルはjson_demo.phpで保存されています:

  <?php
  $q = $_REQUEST["q"];  // URLからqパラメータを取得する
  $obj = json_decode($q, false); // JSON文字列をPHPオブジェクトに変換する
  echo $obj->name." 居住在  ".$obj->city.".";
  ?>

以下の例では、JavaScriptオブジェクトをJSON文字列に変換し、それをサーバー(demo_json.php)に送信します:

var myObj = {name: "Seagull", age: 22, city: "New Delhi"};
var myJSON = JSON.stringify(myObj);
window.location = "json_demo.php?q=" + myJSON;
テストしてみる‹/›

JSON文字列をPHP配列に変換するためにはfunctionを使用できますjson_decode()。

<?php
$q = $_REQUEST["q"];  //URLからqパラメータを取得する
$arr = json_decode($q, true); // JSON文字列をPHP配列に変換する
echo $arr["name"]." 居住在 ".$arr["city"].".";
?>