• 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
What's Hot

机械模具加工公司网站设计案例

24 10 月, 2023

快速原型公司案例

24 10 月, 2023

陶瓷加工网站案例

24 10 月, 2023
Facebook Twitter Instagram
  • 中文
  • English
Facebook Twitter Instagram
VPSEO VPSEO
  • 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
VPSEO VPSEO
Home»PHP»PHP json_decode 函数解析 json 结果为 NULL 的解决方法
PHP

PHP json_decode 函数解析 json 结果为 NULL 的解决方法

chrispengcnBy chrispengcn7 8 月, 2021没有评论1 Min Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Share
Facebook Twitter LinkedIn Pinterest Email
在做网站 CMS 模块时,对于模块内容 content 字段,保存的是 json 格式的字符串,所以在后台进行模块内容的编辑操作 ( 取出保存的数据 ) 时,需要用到 json_decode() 函数。

但是在解析的时候,使用 json_decode() 函数解析的结果一直是 NULL,没有出现希望解析成的数组。下面是问题和分析:

1. 当输出 json 字符串时,代码和页面的显示内容分别是:

echo $content = $res[0]['con']['content'];

只需要考虑 $content , $res[0][‘con’][‘content’] 是从返回的数据中取出 content 的值,这里不需要考虑。这时页面显示:

{"bpic":"group1/M00/00/0D/rBAK31STtZeAe056AAKWuBmsAgc339.jpg","bname":"112","breason":"22","about1":"3334","about2":"444","about3":"555","tpic1":"group1/M00/00/0D/rBAK31STsyGARPwHAAMcD98U8xo736.jpg","tpic2":"group1/M00/00/0D/rBAK31STtZeAEnEaAANwlbOXMYA393.jpg","tpic3":"group1/M00/00/0D/rBAK31STtSqARRUMAAKWuBmsAgc150.jpg"}

稍微美化一下:

复制代码
{
"bpic":"group1/M00/00/0D/rBAK31STtZeAe056AAKWuBmsAgc339.jpg",
"bname":"112",
"breason":"22",
"about1":"3334",
"about2":"444",
"about3":"555",
"tpic1":"group1/M00/00/0D/rBAK31STsyGARPwHAAMcD98U8xo736.jpg",
"tpic2":"group1/M00/00/0D/rBAK31STtZeAEnEaAANwlbOXMYA393.jpg",
"tpic3":"group1/M00/00/0D/rBAK31STtSqARRUMAAKWuBmsAgc150.jpg"
}
复制代码

2. 此时使用 json_decode() 解析 $content,并使用 var_dump 打印:

$content = json_decode($content,true);

但是页面却显示 NULL。此时使用 json_last_error() 函数打印一下错误,页面显示4,也就是语法错误。

echo $errorinfo = json_last_error();   //输出4 语法错误

 

解决方法一:

出现这个问题是因为在 json 字符串中反斜杠被转义,只需要用 htmlspecialchars_decode() 函数处理一下 $content 即可:

$content = htmlspecialchars_decode($content);

此时再使用 json_decode() 函数解析,就没有问题了,页面输出:

复制代码
Array ( 
[bpic] => group1/M00/00/0D/rBAK31STtZeAe056AAKWuBmsAgc339.jpg 
[bname] => 112 
[breason] => 22 
[about1] => 3334 
[about2] => 444 
[about3] => 555 
[tpic1] => group1/M00/00/0D/rBAK31STsyGARPwHAAMcD98U8xo736.jpg 
[tpic2] => group1/M00/00/0D/rBAK31STtZeAEnEaAANwlbOXMYA393.jpg 
[tpic3] => group1/M00/00/0D/rBAK31STtSqARRUMAAKWuBmsAgc150.jpg 
)
复制代码

 

解决方法二:


在保存 json 数据时使用 urlencode() 函数:

$content = urlencode(json_encode($content));

解析时使用 urldecode() 函数:

$content = urldecode($content);

即可避免反斜杠转义造成的无法解析。

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
chrispengcn
  • Website

Related Posts

PHP读取文本文件内容并随机输出任意一行

10 11 月, 2021

PHP中获取远程文件的三种方法

10 11 月, 2021

PHP array_rand() 函数随机输出数组内容

10 11 月, 2021

drupal 后台使用教程

7 8 月, 2021
Add A Comment

Leave A Reply Cancel Reply

*

code

导航
  • 首页
  • 关于我们
  • 服务项目
  • 项目案例
  • 博客文章
  • 联系我们
博客
  • 服务器运维
  • 服务器安装
  • nginx
  • PHP
  • WordPress
  • Python
  • Javascript
  • SEO
  • 电子商务
  • 大数据采集
  • 宝塔面板
  • 数据库
  • 电子商务
  • 虚拟化
  • 阿里云
导航
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们
最新文章
  • 机械模具加工公司网站设计案例
  • 快速原型公司案例
  • 陶瓷加工网站案例
  • CNC数控加工日文网站案例
  • 触摸一体机数字标牌厂家网站案例
关于我们
关于我们

广州纬来科技有限公司
联系地址:广东省广州市番禺区富华中路富源二街18号合和大厦809

QQ : 13602156
Email : 13926026058@139.com
Contact: +86 13926026058

Facebook Twitter YouTube LinkedIn
© 2025 广州纬来科技有限公司 粤ICP备2023105857号-2
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们

Type above and press Enter to search. Press Esc to cancel.