私は次のようなものをダンプする多次元配列を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() は使用できません。このコードは多くの異なるサーバーで実行されていますが、これがこの問題の唯一のケースであるため、コードベースではなくサーバーベースの問題であると推測しています。
何か案は?