dsfsdf7852
dsfsdf7852
2017-11-20 15:57
浏览 111

Json字符串转换为json对象

I have been stuck in this issue and cant seem to fix it.. I have this JSON STRING

$unBillableArr = ["{'id' : '123','to' : '+923412268656','MsgReceivedFrom' : '03349433314', 'message':'Qwertyy ', 'recdate':'2017-11-20 19:01:49'}"];

I need to convert it into array of object or maybe just one json object.. I have tried doing

json_decode($unBilledArr , true);

It gives me null.

Already tried these solutions as well

Convert a string to JSON object php

https://jonsuh.com/blog/convert-loop-through-json-php-javascript-arrays-objects/

I must be doing something wrong.. cant seem to figure out what..

P.s : This is the response i am getting and i can not do anything about the response.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doulangxun7769
    doulangxun7769 2017-11-20 15:59
    已采纳

    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.

    点赞 评论

相关推荐