Bu bir Javascript hassasiyet sorunudur. Mozilla Developer Network göre
:
ECMA-262 sadece en fazla 21 anlamlı basamak bir hassasiyet gerektirir. Diğer uygulamalar, standardın gerektirdiğinden daha yüksek kesinleri desteklemeyebilir.
Kaynak: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Number/toPrecision
Google Chrome'un JavaScript konsoluna dizinizi yapıştırılan ve geri aldım: onlar XML dönüştürülen önce JavaScript değerleri yuvarlama gibi
Yani görünüyor. Dönüşümünüz, tarayıcıda Javascript aracılığıyla http://www.utilities-online.info/xmltojson/ adresinde yapıldığı için numaranın neden değiştirildiğini anlamlandırır.
(Not: Windows 7 Professional kullanarak Google Chrome sürümü 26.0.1410.43 m üzerinde test)
Düzenleme:
Eğer dizeleri olarak Javascript bu değerleri geçemez herhangi bir neden var mı?
[
{
"orderNumber": "1",
"customerId": "228930314431312345",
"shoppingCartId": "22893031443137109",
"firstName": "jjj"
}
]
bunu başardı ve başarılı değerleri kaydetmek:
bu deneyin. Ancak, elbette 0 ile çarpma gibi bir şey yapmıyorsanız, Javascript'te bir miktar hassaslık kaybetmeden bir matematik hesaplaması yapamazsınız.
Bu aynı zamanda doğru referansı http://www.utilities-online.info/xmltojson/ kullanarak XML dönüştürülür.
IE 9 ve Chrome üzerinde denemiştim. Temel olarak, Spring MVC denetleyicimden bir JSON yanıtı almaya çalışıyorum ve geçersiz değerler alıyorum. XML dönüştürücüyü sadece istek/yanıt göstermek için kullandım. Teşekkürler! Gson ve Jackson'ı denedim. – Jeet
@Jeet - Bkz. ** Düzenleme **. Amaçlarınız için çalışabilecek bir geçici çözüm buldum. – Aiias
Eh .. Onları dizeler olarak geçirebilirim, ancak bu manuel müdahale olmaz mı? Kutunun dışında bir çözüm olmasını umuyordum. – Jeet