我的php函数返回一个我使用
转换为json的数组 inline-block
然后将其传递给其他函数并进行解码
casinomongodb:PRIMARY> db.isMaster(); {
"setName" : "casinomongodb",
"setVersion" : 31173,
"ismaster" : true,
"secondary" : false,
"hosts" : [
"10.1.243.66:27017",
"10.1.243.62:27017",
"10.1.243.61:27017"
],
"primary" : "10.1.243.62:27017",
"me" : "10.1.243.62:27017",
"electionId" : ObjectId("56c5657c8994dff92e8996fa"),
"maxBsonObjectSize" : 16777216,
"maxMessageSizeBytes" : 48000000,
"maxWriteBatchSize" : 1000,
"localTime" : ISODate("2016-04-06T09:19:03.077Z"),
"maxWireVersion" : 3,
"minWireVersion" : 0,
"ok" : 1 }
它返回一个数组,包括数组格式的所有索引。 即使在请求数组中,$ questionData在某个索引上也有对象,那些在jason编码和解码执行后应该在对象中。
我想获得具有arrya和object数据混合的相同数组。
下面是请求数组
$req = json_encode($questionData);
响应数组
$res = json_decode($req);
答案 0 :(得分:0)
所以在我意识到你真正想做的事情后,我只使用serialize
和unserialize
作为JSON函数的替代品,如下面的工作示例:
class testobj {
public function __get($name) {
if(isset($this->{$name}))
return $this->{$name};
return false;
}
public function __set($name,$val) {
$this->{$name} = $val;
}
}
$test = new testobj();
$test->testvar = "testval";
echo print_r($test,true);
/* Output:
testobj Object
(
[testvar] => testval
)
*/
$test = serialize($test);
echo $test;
/* Output:
O:7:"testobj":1:{s:7:"testvar";s:7:"testval";}testobj Object
*/
$test = unserialize($test);
echo print_r($test,true);
/* Output:
testobj Object
(
[testvar] => testval
)
*/
echo $test->testvar; // outputs "testval"
我认为serialize()
和unserialize()
并不像JSON de- / encoding那样快(我从来没有对此进行过测试/基准测试),但它本身存储了对象名称。我不知道它是否适用于具有方法的类/对象,但对于上面的数据,它将起作用。也有多维结构。