Ho visto una delle cose più strane in javascript. Il lato server (molla):Numero intero Javascript
@RequestMapping(value = "/foo", method = RequestMethod.GET)
@ResponseBody
public Long foo() {
return 793548328091516928L;
}
torno un singolo valore lunga e:
$.get('/foo').done(function(data){
console.log(data);
});
Esso rappresenta il tempo intero come "793.548.328.091,5169 milioni" sostituzione (arrotondamento in effetti) le ultime due cifre con 0s . Quando effettuo la richiesta GET da qualsiasi barra degli indirizzi del browser, il numero è rappresentato correttamente; quindi questa è una questione js, secondo me.
Tornando stringa anziché lungo dal server e trattare con:
var x = new Number(data).toFixed();
ovviamente una soluzione. Ma non sono così fortunato che, devo gestire un POJO complesso (convertito in JSON) i cui campi (alcuni sono nidificati) sono digitati con il tipo java.lang.Long
. Se provo a lanciare questo POJO su un altro oggetto non avendo campi digitati a lungo, è ovviamente ingombrante.
C'è qualche soluzione a quell'ostacolo in modo più chiaro?
significa che nessuna soluzione? – px5x2
@ px5x2 nessuna soluzione basata su "numero javascript". La migliore soluzione al tuo problema dipenderà dai requisiti esatti. Se si desidera solo visualizzarli, inviarli come stringhe. –
@dystroy: una cattiva idea a causa dei fusi orari –