私はジャバスクリプトの中で奇妙なものの1つを見ました。 サーバ側(スプリング):私は、単一の長い値と戻りJavaScriptの長整数
@RequestMapping(value = "/foo", method = RequestMethod.GET)
@ResponseBody
public Long foo() {
return 793548328091516928L;
}
:
$.get('/foo').done(function(data){
console.log(data);
});
を「793548328091516900」が0で(実際に丸め)、最後の2桁を交換するように、長い整数を表します。 。任意のブラウザのアドレスバーからそのGETリクエストを作成すると、数字が正しく表示されます。私の意見では、これはjsの問題です。
サーバから長いのではなく、文字列を返すとでハンドリング:明らかに
var x = new Number(data).toFixed();
ソリューション。しかし、私はいくつかのフィールド(いくつかはネストされている)がjava.lang.Long
タイプでタイプされた複雑なPOJO(JSONに変換されたもの)を処理する必要があります。このPOJOを、Long型のフィールドを持たない別のオブジェクトにキャストしようとすると、明らかに面倒です。
この障害を解決する方法はありますか?
は、その解決策がないことを意味? – px5x2
@ px5x2「javascript番号」ベースのソリューションはありません。問題に対する最良の解決策は、正確な要件に依存します。表示するだけの場合は、それらを文字列として送信します。 –
@dystroy:タイムゾーンのために悪い考え –