PHP JSON解析与生成教学_PHP处理JSON数据完整流程

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

PHP JSON解析与生成教学_PHP处理JSON数据完整流程-第1张图片-佛山资讯网

PHP 处理 JSON 数据的核心就是 json_encode()json_decode() 两个函数,用对了就很简单,用错了就容易出 Warning 或返回 null。关键不在语法多难,而在理解数据类型转换规则和错误处理习惯。

JSON 生成:把 PHP 变量转成 JSON 字符串

json_encode() 把数组或对象转为合法 JSON 字符串。注意三点:

  • 关联数组(键名是字符串)会生成 JSON 对象 {"name":"张三"};索引数组(键名是数字且连续)会生成 JSON 数组 ["a","b"]
  • 中文默认被转成 Unicode(如 \u4f60),加 JSON_UNESCAPED_UNICODE 参数可保留原文:json_encode($data, JSON_UNESCAPED_UNICODE)
  • 如果变量含资源、闭包或不可序列化的对象,json_encode 会返回 false,建议加判断:if (false === $json = json_encode($data)) { /* 处理错误 */ }

JSON 解析:把 JSON 字符串转回 PHP 变量

json_decode() 还原数据,默认返回 stdClass 对象;传第二个参数 true 才返回关联数组:

  • json_decode('{"name":"李四"}') → 对象,取值写法:$obj->name
  • json_decode('{"name":"李四"}', true) → 数组,取值写法:$arr['name']
  • 解析失败时返回 null(不是 false!),可用 json_last_error() 查具体错误,比如 JSON_ERROR_SYNTAX 表示 JSON 格式不对
  • 常见坑:前端传来的 JSON 字符串可能带 BOM 或多余空格,建议先 trim($json_str) 再解析

实战中必须加的防护动作

真实项目里不能假设 JSON 一定合法。每次 decode 后都该检查:

立即学习“PHP免费学习笔记(深入)”;

标签: php js 前端 json 编码

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~