4

json_encode を使用して、php 多次元配列を出力 json に変換しています。通常、この関数はすべての値を文字列に変換します。整数値が整数値として JavaScript に送信されることを確認するために、数値チェックを使用しています。

$json = json_encode($data, JSON_NUMERIC_CHECK);

これは、私のアプリの 1 つのケースを除いてすべて正常に機能します。php 配列 (データベースから抽出される) には、非常に大きな整数を含むフィールドが 1 つあります。VARCHARとしてデータベースに保存しますが、残念ながらこれはjsonにエンコードするときに整数に変換されます。問題は、これは非常に大きな整数であるため、丸められ、真の値を表していないことです。どうすればこの問題に取り組むことができますか?

4

2 に答える 2

0

Do you want the large number to be transformed to an integer? Your question leads me to believe you don't. If that's the case, remove the JSON_NUMERIC_CHECK option from the call and it shouldn't change the encoding of the field.

Documentation about this (and other) constants is here.

于 2012-12-19T17:31:43.213 に答える
0

遅すぎるかもしれませんが、私は同じ問題に遭遇し、そのバージョンで実行する必要があるレガシーコードのために、サーバー上の PHP 5.3 でスタックしました。私が使用した解決策はばかげていますが、私にとってはうまくいきました.dbから読み取ったvarcharであるlong整数の最後にスペース文字を追加し、JSON_NUMERIC_CHECKでjsonエンコードする前にそれを送信します。

于 2015-12-13T12:19:10.273 に答える