创建自定义json_encode函数

时间:2013-10-20 08:47:40

标签: php

我有以下数组:

$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必须是一个数组。

我的问题是,实现我追求的结果的最佳途径是什么?

1 个答案:

答案 0 :(得分:3)

您仍然应该使用json_encode来处理从PHP到JSON的转换。您可以在调用json_encode之前转换PHP对象。

不要将array()分配给"posDict"密钥,而是尝试分配new stdClass()