例如我有php数组:
$arr = ["a"=>[],"b"=>[]];
我需要json对象为:
{"a":[],"b":{}}
我有一个巨大的数组,应用了json_encode函数。如果我将选项设置为json_encode($data,JSON_FORCE_OBJECT)
,那么它会使每个[]
对象变为{}
对象,这是非常不受欢迎的。
我可以应用特定于阵列键的编码选项吗?因为一个人应该能够从php数组中生成{"a":[],"b":{}}
,这是有效的json。
答案 0 :(得分:4)
您可以使用anonymous classes,例如(DEMO):
$arr = ["a"=>[],"b"=>new class{}];
通过这种方式,您可以将一些键集中转换为对象,将其他键转换为数组。
$arr = ["a"=>[],"b"=>(object)[]];
我个人更喜欢类型转换方法。