加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP为json_decode的数组添加引号

发布时间:2020-12-13 17:11:23 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找json_decode一个字符串,但遇到了没有引号的数组元素的问题. JSON {"Status":"DISPUTED","GUID":[]}{"Status":"CONFIRMED","GUID":[G018712,G017623]} PHP $json = '{"Status":"CONFIRMED",G017623]}';$a = json_decode($json,true);print $a['Stat
我正在寻找json_decode一个字符串,但遇到了没有引号的数组元素的问题.

JSON

{"Status":"DISPUTED","GUID":[]}
{"Status":"CONFIRMED","GUID":[G018712,G017623]}

PHP

$json = '{"Status":"CONFIRMED",G017623]}';
$a = json_decode($json,true);
print $a['Status'];

结果

上面的php打印不会显示任何内容,因为数字中的数字与字母混合在一起,而json_decode不喜欢它.如何为每个数组项添加字符串,以便json_decode可以工作?

解决方法

你的json无效.它应该是 –

$json = '{"Status":"CONFIRMED","GUID":["G018712","G017623"]}';

要么

$json = '{Status:"CONFIRMED",GUID:["G018712","G017623"]}';

您可以使用以下方式轻松修复它

$json = preg_replace('/(?<!")(?<!w)(w+)(?!")(?!w)/','"$1"',$json);

完整的例子

$json = '{"Status":"CONFIRMED",G017623]}{"Status":"CONFIRMED","GUID":[018712,a017623]}';
// fix json
$json = preg_replace('/(?<!")(?<!w)(w+)(?!")(?!w)/',$json);
$a = json_decode($json,true);
print $a['Status'];

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读