zoukankan      html  css  js  c++  java
  • php json_decode返回null

    在使用json_decode函数想把json串转化为数组的时候,出现了null,当时还以为是因为json对字符串的长度有限制,还以为是因为两边少了引号,经过多次处理,发现都没有效果。 百度各种帖子,发现此问题还有人遇到过,那么这个问题肯定也就有解决的方法啦~看过几个帖子,总结问题的出现原因大概有这么几点。我这里把收集到的都总结了

    json_decode要求的字符串比较严格
    1. 使用UTF-8编码 
    2. 不能在最后元素有逗号 
    3. 不能使用单引号 
    4. 不能有 , ,如果有请替换

    解决方案

    一、bom头问题

    json字符串中的BOM头是不可见字符,某些编辑器默认会加上BOM头。

    <?php
    $info = json_decode(trim($info,chr(239).chr(187).chr(191)),true);

    二、语法错误

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

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

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

    $info= htmlspecialchars_decode($info);

    三、其他破坏json字符串的字符

    <?php
     $info=  preg_replace('/[x00-x1Fx80-x9F]/u', '', trim($info));

    我是使用第三种方案解决的问题~

  • 相关阅读:
    SPOJ AMR12B 720
    OUC_TeamTraining_#1 720
    Mac下安装必须软件
    spawn命令和expect
    python基础
    AndroidManifest.xml详解
    Ubuntu系统连接Android真机调试
    Android Studio 快捷键
    linux 解压/压缩命令
    sadasd
  • 原文地址:https://www.cnblogs.com/wt645631686/p/8419932.html
Copyright © 2011-2022 走看看