Wenn ich Object in Json umwandle, habe ich ein Problem mit BigDecimal Precision.
Lassen Sie sagen, ich Pojo Klasse haben mit,gson.toJson (Objekt) BigDecimal Precision Lost
public class DummyPojo {
private BigDecimal amount;
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
}
Nun zu JSON Ich gründe dann Wert auf Pojo Umwandlung
public static void main(String[] args) {
BigDecimal big = new BigDecimal("1000.0005");
JSONObject resultJson = new JSONObject();
DummyPojo summary = new DummyPojo();
summary.setId("A001");
summary.setAmount(big);
resultJson.put("summary",new Gson().toJson(summary));
String result = resultJson.toString();
System.out.println(result);
}
1. Test - korrekte Ausgabe
Output -> {"summary":{"amount":1000.0005,"id":"A001"}}
2. Test - Falsche Ausgabe (Lost BigDecimal Precision)
BigDecimal big = new BigDecimal("1234567.5555"); //Changed the value
Output -> {"summary":{"amount":1234567.5,"id":"A001"}}
3. Test - Falscher Ausgang (Verlorene BigDecimal Precision)
BigDecimal big = new BigDecimal("100000.0005"); //Changed the value
Output -> {"summary":{"amount":100000,"id":"A001"}}
Erstaunlich, dass immer dann, wenn BigDecimal Wert höher Länge ist es dann auch Nachkommastelle gestutzt. Was ist das Problem mit JSON-Coverage. Würden Sie mir bitte die Lösung geben?
Vermissen Sie JEE 7 'JSONObject' und' Gson'? –
@fge Entschuldigung, ich habe einen solchen Ausgang ... –