この記事では、PHP に関する関連知識を提供します。主に、PHP で JSON データを解析する方法を紹介します。JSON は標準の軽量データ交換形式であり、解析と生成が迅速かつ簡単です。皆さんの参考になれば幸いです。
推奨学習: 「PHP ビデオ チュートリアル 」
JSON は、迅速かつ簡単に解析して生成できる標準の軽量データ交換形式です。
JSON は、XML と同様に、記述が簡単で理解しやすいテキストベースの形式ですが、XML とは異なり、JSON データ構造が占有する帯域幅は XML バージョンよりも少なくなります。 JSON は 2 つの基本構造に基づいています:
オブジェクト: キーと値のペア (つまり、キー:値) のコレクションとして定義されます。各オブジェクトは左中括弧 "{" で始まり、右中括弧で終わります。 "}" 最後に、複数のキーと値のペアをカンマ "," で区切ります。
配列: 値の順序付きリストとして定義されます。配列は左括弧 "[" で始まり、右括弧 "]" で終わります。値はカンマ "," で区切られます。
JSON では、キーは常に文字列であり、値は文字列、数値、true または false、null、あるいはオブジェクトや配列の場合もあります。文字列は二重引用符で囲む必要があり、\n、\t、\ などのエスケープ文字を含めることができます。 JSON オブジェクトは次のようになります:
{ "book": { "name": "PHP 从入门到精通", "author": "明日科技", "year": 2017, "type": "php编程", "bestseller": true } }
JSON 配列の例は次のようになります:
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
PHP では、 json_encode() 関数を使用して値を JSON 形式にエンコードします。エンコードされた値には、データベースやファイル ハンドルなどのリソースを除く任意の PHP データ型を使用できます。次の例は、PHP 連想配列を JSON オブジェクトにエンコードする方法を示しています。
// 关联数组 $marks = array("Peter"=>65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks);
同様に、たとえば、PHP インデックス配列を JSON 配列にエンコードできます。次の例に示すように、json_encode() 関数は PHP インデックス配列を JSON オブジェクトとして返します。
// 索引数组 $colors = array("红", "绿", "蓝", "橙", "黄"); echo json_encode($colors);PHP を使用した JSON データのデコード
次に、JSON データをデコードし、PHP で JSON オブジェクトまたは配列の個々の要素にアクセスする方法を示す例を見てみましょう。
// 索引数组 $colors = array("红", "绿", "蓝", "橙"); echo json_encode($colors, JSON_FORCE_OBJECT);
以下に示すように、foreach() を使用してデコードされたデータをループすることもできます。
<?php // 将JSON编码的字符串分配给PHP变量 $json = '{"Peter":65,"Harry":80,"John":78,"Clark":90}'; // 将JSON数据解码为PHP关联数组 $arr = json_decode($json, true); // Access values from the associative array echo $arr["Peter"]; // Output: 65 echo $arr["Harry"]; // Output: 80 echo $arr["John"]; // Output: 78 echo $arr["Clark"]; // Output: 90 // 将JSON数据解码为PHP对象 $obj = json_decode($json); // 返回对象的访问值 echo $obj->Peter; // Output: 65 echo $obj->Harry; // Output: 80 echo $obj->John; // Output: 78 echo $obj->Clark; // Output: 90 ?>
推奨学習: 「
PHP ビデオ チュートリアル以上がPHP が JSON データをどのように解析するかを分析してみましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。