PHP处理JSON的核心是json_encode()和json_decode():前者将PHP变量转JSON字符串,注意数组类型、中文编码及不可序列化值返回false;后者将JSON转PHP变量,默认返对象,加true参数返数组,失败返回null,需用json_last_error()或JSON_THROW_ON_ERROR检查错误。

PHP 处理 JSON 数据的核心就是 json_encode() 和 json_decode() 两个函数,用对了就很简单,用错了就容易出 Warning 或返回 null。关键不在语法多难,而在理解数据类型转换规则和错误处理习惯。
用 json_encode() 把数组或对象转为合法 JSON 字符串。注意三点:
{"name":"张三"};索引数组(键名是数字且连续)会生成 JSON 数组 ["a","b"]
\u4f60),加 JSON_UNESCAPED_UNICODE 参数可保留原文:json_encode($data, JSON_UNESCAPED_UNICODE)
if (false === $json = json_encode($data)) { /* 处理错误 */ }
用 json_decode() 还原数据,默认返回 stdClass 对象;传第二个参数 true 才返回关联数组:
json_decode('{"name":"李四"}') → 对象,取值写法:$obj->name
json_decode('{"name":"李四"}', true) → 数组,取值写法:$arr['name']
json_last_error() 查具体错误,比如 JSON_ERROR_SYNTAX 表示 JSON 格式不对trim($json_str) 再解析真实项目里不能假设 JSON 一定合法。每次 decode 后都该检查:
立即学习“PHP免费学习笔记(深入)”;
isset() 或 array_key_exists())一个轻量级校验示例:
$data = json_decode($input, true); if (null === $data || !is_array($data) || !isset($data['id'])) { die('非法 JSON 或缺少 id 字段'); }PHP 7.3+ 支持 JSON_THROW_ON_ERROR,让解析失败直接抛异常,比查错误码更直观:
json_decode($str, true, 512, JSON_THROW_ON_ERROR) —— 错误时抛 JsonException
JSON_PRESERVE_ZERO_FRACTION 等扩展标志基本上就这些。不复杂但容易忽略细节,尤其是错误判断和中文编码。写完 encode/decode 多看一眼返回值,比事后 debug 快十倍。
以上就是PHP JSON解析与生成教学_PHP处理JSON数据完整流程的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号