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 编码的行为。