json_decode返回NULL

这篇具有很好参考价值的文章主要介绍了json_decode返回NULL。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

json_decode返回NULL

最近在调用某公司的API时,将对方返回的数据,使用PHP的json_decode函数解析,但是返回NULL,最终排查为对方传送来的json格式有误

打印$_REQUEST,数据结构大致如下:

1

2

3

4

5

6

7

8

9

10

array (

  'TeleRec' => '{

  Tel:\'17090114281\',

  Type:2,

  StartTime:\'2016/9/19 10:19:29\',

  EnteTime:\'2016/9/19 10:20:27\',

  param1:57,

  File:\'20160919101929762-2-17090114281.wav\'}',

  'Source' => '',

)

看完对方返回的数据不难发现以下几点错误:

1、TeleRec 是json格式,但是其key,并没有加双引号

2、标准的key和value都应该是双引号,现在其值为单引号

3、每一个键值对后有换行

解决步骤:

1、使用正则表达式,将键加上双引号

2、将值得单引号转化为双引号

3、去掉多余的换行、空格等

代码如下:

json_decode返回NULL

function ext_json_decode($str, $mode=false){  
    $str = preg_replace('/([{,])(\s*)([A-Za-z0-9_\-]+?)\s*:/','$1"$3":',$str);
    $str = str_replace('\'','"',$str);
    $str = str_replace(" ", "", $str);
    $str = str_replace('\t', "", $str);
    $str = str_replace('\r', "", $str);
    $str = str_replace("\l", "", $str);
    $str = preg_replace('/s+/', '',$str); 
    $str = trim($str,chr(239).chr(187).chr(191));
    
    return json_decode($str, $mode);  
}  

 文章来源地址https://www.toymoban.com/news/detail-495551.html

到了这里,关于json_decode返回NULL的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 已解决json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    已解决raise JSONDecodeError(“Expecting value”, s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0) 粉丝群里面的一个粉丝在用Python解析JSON文件,但是发生了报错(跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解决的

    2024年01月22日
    浏览(38)
  • json.decoder.JSONDecodeError: Unterminated string starting at: line 1 ... - Stable Diffusion报错解决方案

    遇到这种问题基本都是数据文件的问题,导致json解析错误,所以需要找到这个文件,然后修复它。 从报错可以看出,是在tokenization_clip.py文件中的__init__方法加载词汇文件时出现的JSONDecodeError。 然后找到这段代码,最后确定这里有错误: 一开始在项目中总是找不到这个voca

    2024年02月03日
    浏览(51)
  • Neo4j企业版报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    环境为neo4j-enterprise-5.1.0、py2neo、Neo4j Desktop-1.5.2 根据堆栈追踪,我们发现self.graph.name为空,而self.graph为Graph(\\\"http://localhost:7474/ \\\") 所以我们自己修改源码 打开python的包的安装位置: X:*****PythonPython37Libsite-packagespy2neodatabase.py 原来的代码: (990行左右) 更改后的代码:

    2024年02月12日
    浏览(67)
  • Neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON 解决方案

    环境: neo4j-5.1.0、py2neo-2021.2.3、Neo4j Desktop-1.5.2、python3.9.13 1、创建neo4j链接,对数据库进行增删改的时候报错。 报错代码: 奇怪的是,同样的代码、数据,用在python3.8.3的环境中没有报错,所以首先查看两个版本python的区别,发现json的__init__中有一些小区别,关于json解析的,

    2024年02月12日
    浏览(58)
  • 【知识图谱】python连接neo4j报错:py2neo.errors.ProtocolError: Cannot decode response content as JSON

    源代码如下 报错信息: 从graph.run这里报错,报出一个JSon相关的错误,百思不得其解。 解决方法: 需要加上一个name=“neo4j”,才能成功,如下 或者这样 完整demo

    2024年02月11日
    浏览(52)
  • ChatGPT之后,下个AIGC杀手级应用已近在眼前

    鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 大模型模式,正在新一波AIGC的浪潮里被再度验证。 从AI画画的出圈,到现如今ChatGPT的火爆,面向大众的爆款产品接口背后,无不是大模型技术的突破创新。 而当这种“大力出奇迹”的技术路径价值愈发凸显,行业内外也不禁好奇:

    2024年02月10日
    浏览(46)
  • 记录坑,接口不返回json突然返回前端页面html

    前端本地在调试页面,突然告诉我一个很久没动的好端端的接口突然返回值变成了html , 查遍了生产环境和测试环境同一个页面接口返回值都没问题, 问题只出在他本地环境 ,关键他连的是测试环境(数据正常)的接口, 前端让我排查接口,服务器配置,我考虑半天可能出现的

    2024年02月03日
    浏览(37)
  • restTemplate调用外部接口,调用返回307,用postman直接调用接口正常返回数据

    restTemplate调用外部接口,调用返回307,用postman直接调用接口正常返回数据 结论:调用的接口路径后加/ postman 关掉自动重定向(filesettins把Automatically follow redirects关掉),调用也同样返回307了 在网上各种搜307,出来的结果都是什么重定向 getHeaders().getLocation().toString() 获得返回

    2024年02月03日
    浏览(50)
  • SpringBoot (二) --- 返回Json数据

    ​ JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它是一种在各个编程语言中流通的数据格式,负责不同编程语言中的 数据传递和交互 。 相当于全球通用语— 英语 ,中国56个民族不同地区的通用语言- 普通话 json的基本语法格式如下: json是一种纯字符数据,不属

    2024年02月16日
    浏览(62)
  • Flask - 返回 json 格式数据 - json 数据传输支持中文显示

    在 Flask 配置中加入下面一行代码就OK了。 Flask 返回 Json python flask 返回json数据 Flask 让jsonify返回的json串支持中文显示 flask或flask-restful的接口开发,返回的json数据能显示中文的方法

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包