json_decode to array

前端 未结 12 1488
野的像风
野的像风 2020-11-22 01:31

I am trying to decode a JSON string into an array but i get the following error.

Fatal error: Cannot use object of type stdClass as array in C:\\w

12条回答
  •  渐次进展
    2020-11-22 01:51

    This is a late contribution, but there is a valid case for casting json_decode with (array).
    Consider the following:

    $jsondata = '';
    $arr = json_decode($jsondata, true);
    foreach ($arr as $k=>$v){
        echo $v; // etc.
    }
    

    If $jsondata is ever returned as an empty string (as in my experience it often is), json_decode will return NULL, resulting in the error Warning: Invalid argument supplied for foreach() on line 3. You could add a line of if/then code or a ternary operator, but IMO it's cleaner to simply change line 2 to ...

    $arr = (array) json_decode($jsondata,true);
    

    ... unless you are json_decodeing millions of large arrays at once, in which case as @TCB13 points out, performance could be negatively effected.

提交回复
热议问题