这个问题在这里已有答案:
我正在向基于GO的API提交JSON请求,这需要发送空值,如下面的代码段:
...
"Data": {
"values": {}
},
...
我正在使用json_enocde($ mydata)将PHP数组转换为JSON,它返回值为:
<?php
$mydata = array(
'Data' => array(
'values' => array()
)
);
$mydata = json_encode($mydata);
//outputs
"Data": {
"values": []
},
我怎样才能获得{}
而不是[]
符号。现在我使用下面的hack用{}
替换空数组值符号。
$mydata = str_replace('[]','{}',$mydata);
[] - 是一个数组,但{} - 是一个对象,所以改变它:
<?php
$mydata = array(
'Data' => array(
'values' => new \stdClass()
)
);
$mydata = json_encode($mydata);
echo $mydata;
产量
{"Data":{"values":{}}}