PHP での JSON のエンコードとデコード (詳細な例)

WBOY
リリース: 2023-04-10 19:16:01
オリジナル
5315 人が閲覧しました

前回の記事「PHPで配列と文字列を5分で変換する方法を教えます」では、PHPでの配列と文字列の変換に関する知識を詳しく紹介しました。 PHP の JSON に関する関連知識をご覧ください。皆様のお役に立てれば幸いです。

PHP での JSON のエンコードとデコード (詳細な例)

前の記事では、PHP で配列と文字列の間の変換を完了する方法を学びました。これには、explode() 関数と が必要です。実装する implode() 関数 次に、JSON についての知識を理解し、PHP が JSON 内の変数をどのようにエンコードするかを確認する必要があります。

PHP で変数を JSON でエンコードしたい場合は、まず JSON とは何かを理解する必要があります。一緒に見てみましょう。

JSON とは

JSON は主にデータの送信に使用され、他のプログラミング言語とは完全に異なる軽量のデータ交換形式です。データを保存および表現するための PHP。

JSON は読み書きが比較的簡単であると同時に、機械による解析と生成が比較的簡単であり、データ送信の効率を非常に効果的に向上させることができます。

PHP にはすでに JSON 拡張機能が組み込まれています。次に、PHP の JSON 関数と、PHP 言語を使用して JSON オブジェクトをエンコードする方法を見てみましょう。

<strong><span style="font-size: 20px;">json_encode()</span></strong>JSON エンコード

PHP の json_encode() は変数を JSON エンコードするために使用されます。この関数の基本的な構文形式は次のとおりです:

string json_encode ( $value [, $options = 0 ] )
ログイン後にコピー

注意する必要があるのは: json_encode() を実行することです。 関数が成功した場合、返される結果は JSON データです。エラーがあった場合、返される結果は false です。

Parameter$value は、必要な値を表します。 json_encode() の特別な点は、この関数では UTF-8 でエンコードされたデータのみが有効であることです。パラメータ options は、定数で構成されるバイナリ マスクを表します。これらの定数は次のとおりです: JSON_HEX_QUOTJSON_HEX_TAGJSON_HEX_AMPJSON_HEX_APOSJSON_NUMERIC_CHECKJSON_PRETTY_PRINTJSON_UNESCAPED_SLASHESJSON_FORCE_OBJECT

次に、例を通して PHP での json_encode() 関数の使用法を見てみましょう。これは、PHP 配列要素を JSON 形式のデータに変換することです。例は次のとおりです:

<?php
   $arr = array(&#39;a&#39; => 1, &#39;b&#39; => 2, &#39;c&#39; => 3, &#39;d&#39; => 4, &#39;e&#39; => 5);
   echo json_encode($arr);
   $arr1 = array(&#39;一&#39; => 1, &#39;二&#39; => 2, &#39;三&#39; => 3, &#39;四&#39; => 4, &#39;五&#39; => 5);
   echo json_encode($arr1);
?>
ログイン後にコピー

出力結果:

PHP での JSON のエンコードとデコード (詳細な例)

上記の例から、json_encode() を使用して PHP 配列要素を JSON に適したデータ (UTF-8 のみ) に変換できることがわかります。エンコーディング データはこの関数に対して有効です。

上記の例は、PHP で 1 次元配列を変換しています。次に、多次元配列の変換結果を見てみましょう。例は次のとおりです。

<?php
$arr_2 = array();
// 三维数组
$arr_2[&#39;member&#39;][&#39;lisi&#39;][&#39;job&#39;] = "worker";
$arr_2[&#39;member&#39;][&#39;lisi&#39;][&#39;age&#39;] = 30;
$arr_2[&#39;member&#39;][&#39;wangwu&#39;][&#39;job&#39;] = "student";
$arr_2[&#39;member&#39;][&#39;wangwu&#39;][&#39;age&#39;] = 10;
 
echo json_encode($arr_2);
//{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
  ?>
ログイン後にコピー

出力結果:

PHP での JSON のエンコードとデコード (詳細な例)

上記の例は、PHP の配列要素を関数で変換する例ですが、次に、PHP オブジェクトを JSON 形式のデータに変換する例を見てみましょう。次のようになります。

<?php
class Person{
    public $name = "public name";
    protected $ptName = "protected name";
    private $pName = "private name";
 
    public function sayName(){
        return $this->name;
    }
}
$person1 = new Person();
echo json_encode($person1);//{"name":"public name"}
  ?>
ログイン後にコピー

出力結果:

PHP での JSON のエンコードとデコード (詳細な例)

別の例を見てみましょう:

<?php
   class Emp {
       public $name = "";
       public $hobbies  = "";
       public $birthdate = "";
   }
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date(&#39;m/d/Y h:i:s a&#39;, "8/5/1974 12:20:03 p");
   $e->birthdate = date(&#39;m/d/Y h:i:s a&#39;, strtotime("8/5/1974 12:20:03"));
 
   echo json_encode($e);
?>
ログイン後にコピー

出力結果:

PHP での JSON のエンコードとデコード (詳細な例)

これで、json_encode() 関数を使用して、PHP のオブジェクトから JSON 形式への変換が完了します。

<strong><span style="max-width:90%">json_decode()</span></strong>JSON デコード

PHP では、json_decode() 関数を使用して、JSON 形式の文字を PHP 変数形式に変換します (デコード)。 json_decode() 関数の基本的な構文形式を見てみましょう。例は次のとおりです:

mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
ログイン後にコピー

パラメータ json_string は、JSON 形式の文字列を表すことに注意してください。変換、つまりデコードする必要があります。 json_encode() 関数と同様に、デコードされたデータも UTF-8 でエンコードされたデータである必要があります。パラメータ assoc は、パラメータが true の場合に返される結果を示します。が配列であり、パラメーターが false の場合、返される結果はオブジェクトです。

パラメーターの深さは整数型パラメーターを表し、パラメーター options はバイナリ マスクを表します。 json_encode() とは異なりますが、この関数は現時点ではそれほど多くの機能をサポートしておらず、現時点では JSON_BIGINT_AS_STRING のみをサポートしています。

次に、PHP がどのようにデコードするかを例に挙げてみましょう。例は次のとおりです:

<?php
   $json = &#39;{"a":1,"b":2,"c":3,"d":4,"e":5}&#39;;
   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>
ログイン後にコピー

出力結果:

PHP での JSON のエンコードとデコード (詳細な例)

通过上述示例我们看到了通过json_decode()对JSON进行解码,上述是解码成数组,下面我们看一下解码成对象,示例如下:

<?php
$jsonStr = &#39;{"key1":"value1","key2":"value2"}&#39;;
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>
ログイン後にコピー

输出结果:

PHP での JSON のエンコードとデコード (詳細な例)

由此我们便通过json_encode()函数与json_decode()函数完成了PHP数据与JSON的编码与解码。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上がPHP での JSON のエンコードとデコード (詳細な例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート