PHP为json_解码向数组添加引号

PHP为json_解码向数组添加引号,php,json,preg-split,Php,Json,Preg Split,我希望对字符串进行json_解码,但数组元素没有引号会出现问题 JSON {"Status":"DISPUTED","GUID":[]} {"Status":"CONFIRMED","GUID":[G018712, G017623]} PHP $json = '{"Status":"CONFIRMED","GUID":[G018712,G017623]}'; $a = json_decode($json, true); print $a['Status']; 结果 上面的php打印不会显示任

我希望对字符串进行json_解码,但数组元素没有引号会出现问题

JSON

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

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


上面的php打印不会显示任何内容,因为数组中混合了字母和数字,json_解码不喜欢它。如何向每个数组项添加字符串,以便json_解码工作?

您的
json
无效。应该是-

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


您可以使用-

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

$json=preg_replace('/(?该服务未提供有效的json。这是无效的json…在上测试它。我认为OP知道它无效。OP正在寻找处理此特定情况的方法。这里回答了这个问题(我相信它回答了您的问题):
$json = preg_replace('/(?<!")(?<!\w)(\w+)(?!")(?!\w)/', '"$1"', $json);
$json = '{"Status":"CONFIRMED","GUID":[G018712,G017623]}{"Status":"CONFIRMED","GUID":[018712,a017623]}';
// fix json
$json = preg_replace('/(?<!")(?<!\w)(\w+)(?!")(?!\w)/', '"$1"', $json);
$a = json_decode($json, true);
print $a['Status'];