0

我正在 json_encoding 一个多维数组,它会转储如下内容:

$array = 

Array
(
    [a] = Array
        (
            [0] = Array
                (
                    [x0] = some-string
                    [y0] = some-string
                )
            [1] = Array
                (
                    [x1] = some-string
                    [y1] = some-string
                )
        )
    [b] = Array
        (
            [b1] = Array
                (
                    [0] = Array
                        (
                            ...
                        )
                )
            [b2] = Array
                (
                    [0] = Array
                        (
                            ...
                        )
                )
            ...
     )
)

但是,如果我执行以下操作并转储结果:

$json = json_encode( $array );
json_decode( $json, true );

仅返回数组“a”:

Array
(
    [a] = Array
        (
            [0] = Array
                (
                    [x0] = some-string
                    [y0] = some-string
                )
            [1] = Array
                (
                    [x1] = some-string
                    [y1] = some-string
                )
            ...
        )
    )
)

我的第一个想法是导致解析错误的无效字符,但 json_decode 应该只从解析错误返回 null,而不是部分解析的数组。

附加信息:原始数组最多可嵌套 9 层,编码后为约 52,000 个字符串。

更新:我在 PHP 5.2.11 上看到了这个问题,所以 json_last_error() 不可用。我们有这个代码在许多不同的服务器上运行,这是这个问题的唯一情况,所以我猜它是一个基于服务器的问题,而不是基于代码的问题,不管它有什么价值。

有任何想法吗?

4

0 回答 0