1

以下方法将对象中的属性实例更改为数组,但要求有所不同,操作后的响应结果将相同。

<?php

$data =  array('statusCode'=>200,
               'statusDescripion'=>'success',
               'data'=> array('companyImage'=>new StdClass(),
               'profile'=>array())
              );

echo "<br><br> Encoded data coming from API<br>";
echo $encodeData = json_encode($data,true);

//echo "<br><br> Decode data for Manipulation <br>";
$decodeData = json_decode($encodeData,true);
//print_r($decodeData);
if($decodeData['statusCode'] == 200){
    $data_ = array('statusCode'=>$decodeData['statusCode'],
                   'statusDescripion'=>$decodeData['statusDescripion'],
                   'data'=>$decodeData['data'],
                   'url'=>"php.com");
}

echo "<br><br> After Manipulation <br>";
echo json_encode($data_,true);

在此处输入图像描述

4

1 回答 1

2

来自json-decode文档:

当为 TRUE 时,返回的对象将被转换为关联数组

您使用它以便将对象转换为数组 - 如果您希望它成为对象(又名{}),只需true从行中删除:

$decodeData = json_decode($encodeData,true);

至:

$decodeData = json_decode($encodeData);

顺便说一句,json-encode没有true作为第二个参数,我想你想要JSON_FORCE_OBJECT

于 2019-09-02T00:15:43.477 回答