我正在 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() 不可用。我们有这个代码在许多不同的服务器上运行,这是这个问题的唯一情况,所以我猜它是一个基于服务器的问题,而不是基于代码的问题,不管它有什么价值。
有任何想法吗?