如何在 PHP 中解析 JSON 文件

Minahil Noor 2021年4月29日 2020年6月9日
如何在 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"
    }
]

使用 file_get_contents() 函数解析 PHP 中的 JSON 文件

内置函数 file_get_contents() 用于读取文件并将其存储为字符串。通过使用此函数,我们可以将 JSON 文件解析为字符串。使用此函数的正确语法如下。

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

此函数接受五个参数。这些参数的详细信息如下。

参数             描述
$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