Widziałem jedną z najdziwniejszych rzeczy w javascript. boczne serwer (sprężyna)JavaScript long integer
@RequestMapping(value = "/foo", method = RequestMethod.GET)
@ResponseBody
public Long foo() {
return 793548328091516928L;
}
wrócić pojedynczy długi wartości i:
$.get('/foo').done(function(data){
console.log(data);
});
Reprezentuje długiej całkowitą, „793548328091516900” zastępując (zaokrąglenia rzeczywiście) dwie ostatnie cyfry z 0s . Kiedy wysyłam żądanie GET z paska adresu przeglądarki, numer ten jest poprawny; w związku z tym jest to kwestia js, moim zdaniem.
Wracając ciąg zamiast długo z serwera i przenoszenia go z:
var x = new Number(data).toFixed();
oczywiście rozwiązanie. Ale nie mam tyle szczęścia, że muszę obsłużyć złożone POJO (przekonwertowane na JSON), którego niektóre pola (niektóre są zagnieżdżone) są wpisane z typem java.lang.Long
. Jeśli spróbuję rzucić to POJO do innego obiektu, nie ma pól wpisanych na Long, jest to oczywiście uciążliwe.
Czy istnieje jakieś rozwiązanie tej przeszkody w jaśniejszy sposób?
oznacza, że nie ma rozwiązania? – px5x2
@ px5x2 brak rozwiązania opartego na "liczbie javascript". Najlepsze rozwiązanie twojego problemu zależy od dokładnych wymagań. Jeśli chcesz je wyświetlić, wyślij je jako ciągi. –
@dystroy: zły pomysł ze względu na strefy czasowe –