json_encode将对象转换为:
{
"height":10,
"width":20,
"depth":5
}
但我需要它包括对象类名:
{
"cuboid":
{
"height":10,
"width":20,
"depth":5
}
}
答案 0 :(得分:2)
public function toJson() {
return json_encode([get_class($this) => $this]);
}
答案 1 :(得分:0)
希望这会帮助你。在这里,我们将json
转换为array
并将其放入字段数组cuboid
<?php
ini_set('display_errors', 1);
$json='{
"height":10,
"width":20,
"depth":5
}';
$result["cuboid"]=json_decode($json,true);
echo json_encode($result,JSON_PRETTY_PRINT);
答案 2 :(得分:0)
您可以使用get_class获取对象的类名。
$json = json_encode(array(get_class($object) => $object));
答案 3 :(得分:0)
json_encode
{'pro1':'value'}
['value']
'value'
注意:如果你在php中有一个assoc-array,它就成了json中的一个对象!如果你有一个索引数组,它将是json中的一个数组。不要混合索引&amp; assoc命令!
测试这个糟糕的实践:echo json_encode(array('foo' => 'bar',1,2));
结果是这个错误的语法{"kitten":"test","0":1,"1":2}
(属性名称不应该是数字!!!)
因此,如果您想要和属性名称下的对象执行此操作
$obj = new stdClass();
$obj->prop = array(1,2,'a');
$newObject = new stdClass();
$newObject->objname = $obj;
print_r(json_encode($newObject));
成为:{'objname':{'prop':[1,2,'a']}}
度过愉快的一天: - )