json_encode
是 PHP 中的一个内置函数,用于将数组或对象转换为 JSON 格式的字符串
确保您的 PHP 版本支持 json_encode
。这个函数从 PHP 5.2.0 开始被引入,所以在 PHP 5.2.0 及更高版本中都可以使用。您可以通过运行 php -v
命令来查看您的 PHP 版本。
使用 json_encode
函数。这个函数的语法如下:
json_encode(mixed $data, int $options = 0, int $depth = 512): string
其中,$data
是要编码的数据(数组、对象等),$options
是可选的参数,用于控制 JSON 编码的行为,$depth
是可选的参数,用于控制递归编码的深度。
在不同版本的 PHP 中使用 json_encode
的示例:
PHP 5.2.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data);
echo $json_data; // 输出:{"name":"John","age":30,"city":"New York"}
?>
PHP 5.3.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_PRETTY_PRINT);
echo $json_data; // 输出:
{
"name": "John",
"age": 30,
"city": "New York"
}
?>
PHP 5.4.0 示例:
<?php
class Person {
public $name;
public $age;
public $city;
public function __construct($name, $age, $city) {
$this->name = $name;
$this->age = $age;
$this->city = $city;
}
}
$person = new Person("John", 30, "New York");
$json_data = json_encode($person, JSON_PRETTY_PRINT);
echo $json_data; // 输出:
{
"name": "John",
"age": 30,
"city": "New York"
}
?>
PHP 7.0.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json_data; // 输出:{"name":"John","age":30,"city":"纽约"}
?>
PHP 7.1.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
echo $json_data; // 输出:
{
"name": "John",
"age": 30,
"city": "纽约"
}
?>
PHP 7.2.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR);
echo $json_data; // 输出:{"name":"John","age":30,"city":"纽约"}
?>
PHP 7.3.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_UNESCAPED_SLASHES);
echo $json_data; // 输出:{"name":"John","age":30,"city":"纽约"}
?>
PHP 7.4.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_UNESCAPED_SLASHES | JSON_PRESERVE_KEY_ORDER);
echo $json_data; // 输出:{"name":"John","age":30,"city":"纽约"}
?>
PHP 8.0.0 示例:
<?php
$data = array("name" => "John", "age" => 30, "city" => "New York");
$json_data = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_PARTIAL_OUTPUT_ON_ERROR | JSON_UNESCAPED_SLASHES | JSON_PRESERVE_KEY_ORDER | JSON_THROW_ON_ERROR);
echo $json_data; // 输出:{"name":"John","age":30,"city":"纽约"}
?>
从上面的示例中可以看出,随着 PHP 版本的更新,json_encode
函数新增了一些选项,例如 JSON_UNESCAPED_UNICODE
、JSON_PARTIAL_OUTPUT_ON_ERROR
和 JSON_PRESERVE_KEY_ORDER
等。您可以根据需要选择合适的选项来控制 JSON 编码的行为。