編集: 問題は、parseInt を使用したときにベースを指定していなかったことです。なぜこれが起こったのかを正確に理解したいと思います.なぜこれがfirefoxの08と09の値に対してのみ問題を引き起こしたのかを教えてくれる人に答えを与えます.
MySQL データベースに JSON オブジェクトとして格納されている整数の 2 次元配列があります。
jquery の ajax を介してこのオブジェクトを要求すると、JSON が検証されます。JSONLintも問題なく通過します。次に、それを 2 次元の JavaScript 配列に変換し、parseInt を使用して文字列のみの JSON キーを配列の整数キーに変換します。
これは、ほとんどすべてのブラウザー/プラットフォームで問題なく機能します。
元の JSON:
....
"07": [0, 1...
"08": [0, 1...
"09": [1, 1...
"10": [1, 0...
....
for ループ出力 (Safari/Chrome、OSX):
JSON Key (parseInt value): [array]
....
07 (7): [0, 1...
08 (8): [0, 1...
09 (9): [1, 1...
10 (10): [1, 0...
....
for ループ出力 (Firefox OSX、iOS):
JSON Key (parseInt value): [array]
....
07 (7): [0, 1...
08 (0): [0, 1...
09 (0): [1, 1...
10 (10): [1, 0...
....
...一体何?これらのキー (8 と 9) だけが正しく parseInt を通過せず、非常に一貫して発生します。私は、JSON 配列がすべてのブラウザーに無傷で変更されていないことを確認しました。キーが 08 と 09 のままであるという事実は、その証拠です。ただし、08 と 09 が parseint を通過するとすぐに、それらは 0 を返します。18 と 19 は適切に通過し、28 と 29 も同様です。これらの 2 つのキーの周囲には、スペースや非 ASCII 文字など、それらを引き起こす可能性のあるものはありません。不当に読まれる。私は完全に困惑しています。
ここで完全な JSON を見つけることができます。私は何が欠けていますか?
あるいは、これを完全に回避できる方法があれば、喜んで検討します。助けてくれてありがとう、これは私を夢中にさせています!