我有以下数组:
$word = Array(
'dictionaries' => Array(
'posDict' => Array(),
'wordPosDict' => Array(
'1' => Array(1, 4, 5)
)
)
);
当编码为json时必须具有以下格式:
"{"dictionaries":{"posDict":{},"wordPosDict":{"1":[1,4,5]}}}"
posDict
必须是一个对象,1
中的密钥wordPosDict
必须是一个数组。目前,我不能用json_encode做到这一点:
json_encode($word)
给出
"{"dictionaries":{"posDict":[],"wordPosDict":{"1":[1,4,5]}}}"
posDict
是数组
json_encode($word, JSON_FORCE_OBJECT)
给出
"{"dictionaries":{"posDict":{},"wordPosDict":{"1":{"0":1,"1":4,"2":5}}}}"
一切都是对象,但1
中的密钥wordPosDict
必须是一个数组。
我的问题是,实现我追求的结果的最佳途径是什么?
答案 0 :(得分:3)
您仍然应该使用json_encode
来处理从PHP到JSON的转换。您可以在调用json_encode
之前转换PHP对象。
不要将array()
分配给"posDict"
密钥,而是尝试分配new stdClass()
。