Проблема с десятичным форматированием в объекте net.sf.json - PullRequest
1 голос
/ 23 октября 2019

Мы используем компиляцию net.sf.json-lib:json-lib:2.4:jdk15

String requestBody =     {"resconfirmsvid":28,"reservationno":"H0028W090718","component":"Hotel","partnerid":2,"total":169002.15,"internalnote":"","currencycode":"USD","history":[{"id":"0","payment_type":"Payment","payment_method":"Cash","date":"2019-10-30","refnumber":"012525TRTY","amount":160000,"currency":"USD","component":"Hotel","resconfirmsvid":28}]}

requestBody = URLDecoder.decode(requestBody, "UTF-8");
JSONObject request = JSONObject.fromObject(requestBody);

Затем запросим объект следующим образом:

request = {"resconfirmsvid":28,"reservationno":"H0028W090718","component":"Hotel","partnerid":2,"total":169002.16,"internalnote":"","currencycode":"USD","history":[{"id":"0","payment_type":"Payment","payment_method":"Cash","date":"2019-10-30","refnumber":"012525TRTY","amount":160000,"currency":"USD","component":"Hotel","resconfirmsvid":28}]}

После преобразования строки json в объект json с использованием fromObject "total" *Значение 1009 * изменено на 169002,16 с 169002,15

Ответы [ 2 ]

3 голосов
/ 23 октября 2019

У меня возникла та же проблема, когда я использовал net.sf.json-lib для прикрытия строки json в объект Json. Раз я использовал следующую версию gradle
compile 'net.sf.json-lib:json-lib:2.3:jdk15' проблема была исправлена ​​успешно.

1 голос
/ 23 октября 2019

JSON не определяет точность для десятичных чисел. Вот почему рекомендуется использовать строки вместо десятичных чисел.

Источник: Почему вы должны использовать строку в JSON для представления десятичного числа - dthorpe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...