我一直陷入这个问题,似乎无法解决它..我有这个JSON STRING
$unBillableArr = ["{'id' : '123','to' : '+923412268656','MsgReceivedFrom' : '03349433314', 'message':'Qwertyy ', 'recdate':'2017-11-20 19:01:49'}"];
我需要将它转换为对象数组或者只是一个json对象..我已经尝试过了
json_decode($unBilledArr , true);
它给了我null。
已经尝试过这些解决方案
Convert a string to JSON object php
https://jonsuh.com/blog/convert-loop-through-json-php-javascript-arrays-objects/
我一定是做错了什么..似乎无法弄清楚是什么......
P.s:这是我得到的回应,我无法对回应做任何事情。
答案 0 :(得分:1)
您正在尝试解码数组,指定数组中的特定项目,或将其设为字符串。
例如:
$unBillableArr = '{"id":"123", "to":"+923412268656", "MsgReceivedFrom":"03349433314", "message":"Qwertyy", "recdate":"2017-11-20 19:01:49"}';
$json = json_decode($unBillableArr, true);
// Or
$unBillableArr = ['{"id":"123", "to":"+923412268656", "MsgReceivedFrom":"03349433314", "message":"Qwertyy", "recdate":"2017-11-20 19:01:49"}'];
$json = json_decode($unBillableArr[0], true);
但是,如果您收到的字符串不包含有效的JSON,并且您无法控制收到的内容,我准备了以下内容来替换JSON中的单引号,并将每个项解码为数组:< / p>
$unBillableArr = ["{'id' : '123','to' : '+923412268656','MsgReceivedFrom' : '03349433314', 'message':'Qwertyy ', 'recdate':'2017-11-20 19:01:49'}"];
// Loop through each JSON string
$jsonObjects = []; // Change this name...
foreach ($unBillableArr as $jsonString) {
$jsonObjects[] = json_decode(str_replace("'", '"', $jsonString), true);
}
print_r($jsonObjects); // Proof it works
请记住,我认为这是一个肮脏的修复。要正确解决此问题,您应该返回源代码并确保他们返回给您的JSON有效。