-1

我有以下数组结构:

Array
(
    [t] => 812
    [0] => Array
    (
        [5] => 649
        [6] => 12
    )

    [2] => Array
    (
        [0] => 10
    )

    [3] => Array
    (
        [0] => 1
    )

    [4] => Array
    (
        [0] => 152
    )
)

目前所有的数组索引(除了 t)都是整数。

我想使用 json_encode() 将其转换为等效的 JSON,但是当我这样做时,其中只有一个索引(索引 0)的任何数组都会转换为整数而不是数组。

例如

[2] => Array
(
    [0] => 10
)

转换为..

{"2":[10]

代替..

{"2":[0:10]

如果可以解决问题,那么 JSON 可以使用字符串索引而不是整数。

{"2":["0":10]}

关于如何解决这个问题的任何想法?

4

2 回答 2

4

它们不会转换为单个整数,而是转换为只有一个元素的数组!

在 JSON 中,方括号[]表示一个数组,而大括号{}表示一个对象。

如果您想强制json_encode输出对象,例如在您的示例中,您可以选择该选项JSON_FORCE_OBJECT请参阅文档):

$encoded = json_encode( yourArray, JSON_FORCE_OBJECT );
于 2012-07-10T09:29:10.893 回答
2

JSON_FORCE_OBJECTjson_encode. _

于 2012-07-10T09:30:03.597 回答