首先使用json_decode将json字符串转为php数组,如php -r “$json='{“name”:”Tom”}’;$data=json_decode($json,true);print_r($data);”;其次可通过file_get_contents读取JSON文件并解析,配合json_last_error检查错误;最后用json_encode将数组转为JSON字符串,加JSON_PRETTY_PRINT可格式化输出,便于调试或保存。

在PHP命令行环境下处理JSON数据是开发中常见的需求,比如读取配置文件、处理API返回结果或调试数据。PHP提供了内置函数轻松实现JSON与数组之间的转换。
使用json_encode和json_decode解析JSON
PHP通过json_decode()将JSON字符串转为PHP变量(通常是数组或对象),通过json_encode()将PHP变量转为JSON字符串。
在命令行中运行PHP代码示例:
php -r " $json = '{"name": "Tom", "age": 25, "city": "Beijing"}'; $data = json_decode($json, true); print_r($data); "
输出结果为:
立即学习“PHP免费学习笔记(深入)”;
Array ( [name] => Tom [age] => 25 [city] => Beijing )
注意:第二个参数true表示将JSON对象转为关联数组,如果不加,默认返回对象。
从文件读取JSON并转换为数组
实际应用中,JSON数据通常保存在文件中。可通过file_get_contents读取后解析:
Easily find JSON paths within JSON objects using our intuitive Json Path Finder
30
php -r " $json = file_get_contents('data.json'); $data = json_decode($json, true); if (json_last_error() === JSON_ERROR_NONE) { print_r($data); } else { echo 'JSON解析错误: ' . json_last_error_msg(); } "
确保data.json文件存在且格式正确。使用json_last_error()和json_last_error_msg()可检测解析是否出错。
将数组转换为JSON输出
将PHP数组转为JSON字符串,常用于生成接口响应或保存数据:
php -r " $data = Array('name' => 'Alice', 'age' => 30, 'hobbies' => array('reading', 'swimming')); $json = json_encode($data, JSON_PRETTY_PRINT); echo $json; "
输出:
{ “name”: “Alice”, “age”: 30, “hobbies”: [ “reading”, “swimming” ] }
JSON_PRETTY_PRINT让输出更易读,适合调试或写入文件。
基本上就这些。掌握json_decode和json_encode在命令行的用法,能快速处理结构化数据,提高脚本效率。注意检查JSON格式和编码问题,避免解析失败。