📜  php 循环遍历 json - PHP (1)

📅  最后修改于: 2023-12-03 15:03:42.236000             🧑  作者: Mango

PHP 循环遍历 JSON

在 PHP 中,我们可以使用内置函数 json_decode() 来将 JSON 字符串转换成 PHP 对象或数组。一旦我们获得了一个 PHP 对象或数组,我们就可以使用循环来遍历其中的元素。

将 JSON 字符串转换成 PHP 对象

下面是一个示例 JSON 字符串:

{
  "name": "John",
  "age": 30,
  "city": "New York"
}

我们可以通过下面的代码将此 JSON 字符串转换成一个 PHP 对象:

$jsonStr = '{"name":"John","age":30,"city":"New York"}';
$obj = json_decode($jsonStr);

现在,我们可以使用 $obj 来访问对象中的属性:

echo $obj->name; // 输出 John
echo $obj->age; // 输出 30
echo $obj->city; // 输出 New York
将 JSON 字符串转换成 PHP 数组

除了将 JSON 字符串转换成 PHP 对象外,我们还可以将其转换成 PHP 数组。下面是一个示例 JSON 字符串:

[
  {"name": "John", "age": 30},
  {"name": "Jane", "age": 25},
  {"name": "Jack", "age": 35}
]

我们可以通过下面的代码将此 JSON 字符串转换成一个 PHP 数组:

$jsonStr = '[{"name":"John","age":30},{"name":"Jane","age":25},{"name":"Jack","age":35}]';
$arr = json_decode($jsonStr, true);

现在,我们可以使用 $arr 数组来访问其中的元素:

foreach ($arr as $person) {
  echo $person['name'] . ' is ' . $person['age'] . ' years old.' . "\n";
}

上述代码将输出:

John is 30 years old.
Jane is 25 years old.
Jack is 35 years old.
将 PHP 对象或数组转换成 JSON 字符串

如果我们需要将一个 PHP 对象或数组转换成 JSON 字符串,可以使用内置函数 json_encode()。下面是一个示例 PHP 对象:

$obj = new stdClass();
$obj->name = 'John';
$obj->age = 30;
$obj->city = 'New York';

我们可以使用下面的代码将此 PHP 对象转换成一个 JSON 字符串:

$jsonStr = json_encode($obj);

现在,$jsonStr 中将包含以下内容:

{"name":"John","age":30,"city":"New York"}

同样,如果我们需要将一个 PHP 数组转换成 JSON 字符串,也可以使用 json_encode()。下面是一个示例 PHP 数组:

$arr = array(
  array('name' => 'John', 'age' => 30),
  array('name' => 'Jane', 'age' => 25),
  array('name' => 'Jack', 'age' => 35)
);

我们可以使用下面的代码将此 PHP 数组转换成一个 JSON 字符串:

$jsonStr = json_encode($arr);

现在,$jsonStr 中将包含以下内容:

[{"name":"John","age":30},{"name":"Jane","age":25},{"name":"Jack","age":35}]

总结一下,PHP 中处理 JSON 数据只需要使用内置函数 json_decode()json_encode() 即可,特别是将 JSON 字符串转换成 PHP 对象或数组、以及将 PHP 对象或数组转换成 JSON 字符串等常见操作。而循环遍历 PHP 对象或数组,则可以使用 foreach 和基本的数组或对象访问语法。