PHP で JSON ファイルを解析する方法

Minahil Noor 2020年6月25日
PHP で JSON ファイルを解析する方法

この記事では、PHP で JSON ファイルを解析する方法を紹介します。

  • file_get_contents() 関数を使用する

コード例で使用されている JSON ファイルの内容は次のとおりです。

[
    {
        "id": "01",
        "name": "Olivia Mason",
        "designation": "System Architect"
    },
    {
        "id": "02",
        "name": "Jennifer Laurence",
        "designation": "Senior Programmer"
    },
    {
        "id": "03",
        "name": "Medona Oliver",
        "designation": "Office Manager"
    }
]

PHP で file_get_contents() 関数を使用して JSON ファイルを解析する

組み込み関数 file_get_contents() は、ファイルを読み取って文字列に格納するために使用されます。この関数を使用することで、JSON ファイルを文字列に解析できます。この関数を使用するための正しい構文は次のとおりです。

file_get_contents($pathOfFile, $searchPath, $customContext, $startingPoint, $length);

この関数は 5つのパラメーターを受け入れます。これらのパラメータの詳細は次のとおりです。

パラメータ 説明
$pathOfFile 必須の ファイルのパスを指定します
$searchPath オプション 検索ファイルへのパスを指定します。
$customContext オプション カスタムコンテキストを指定するために使用されます。
$startingPoint オプション 読み取りファイルの開始点を指定します。
$length オプション 読み取るファイルの最大長(バイト単位)です。

次のプログラムは、JSON ファイルを解析する方法を示しています。

<?php
$JsonParser = file_get_contents("myfile.json");
var_dump($JsonParser);
?>

関数 file_get_contents() は、JSON ファイルに保存された JSON データのみを解析しました。このデータを直接使用することはできません。

出力:

string(328) "[
    {
        "id": "01",
        "name": "Olivia Mason",
        "designation": "System Architect"
    },
    {
        "id": "02",
        "name": "Jennifer Laurence",
        "designation": "Senior Programmer"
    },
    {
        "id": "03",
        "name": "Medona Oliver",
        "designation": "Office Manager"
    }
]"

このデータを有効にするには、json_decode() を使用して、JSON 文字列を配列に変換します。以下のプログラムでこの関数を使用します。

<?php
$Json = file_get_contents("myfile.json");
// Converts to an array 
$myarray = json_decode($Json, true);
var_dump($myarray); // prints array
?>

出力:

array(3) {
  [0]=>
  array(3) {
    ["id"]=>
    string(2) "01"
    ["name"]=>
    string(12) "Olivia Mason"
    ["designation"]=>
    string(16) "System Architect"
  }
  [1]=>
  array(3) {
    ["id"]=>
    string(2) "02"
    ["name"]=>
    string(17) "Jennifer Laurence"
    ["designation"]=>
    string(17) "Senior Programmer"
  }
  [2]=>
  array(3) {
    ["id"]=>
    string(2) "03"
    ["name"]=>
    string(13) "Medona Oliver"
    ["designation"]=>
    string(14) "Office Manager"
  }
}

関連記事 - PHP JSON