[Solved] Json string conversion to json object


You are trying to decode an array, either specify the specific item within the array, or make it a string.

For instance:

$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);

However, given the string you are receiving does not contain valid JSON and you are unable to control what you receive, I have prepared the following that will replace the single quotes in your JSON, and decode each item into an array:

$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

Please bear in mind that I would consider this to be a dirty fix. To fix this properly, you should go back to the source and ensure that the JSON they are returning to you is valid.

5

solved Json string conversion to json object