我知道大多数Java json库都可以通过
打印StackOverflow上存在无尽的现有问题,这些问题告诉您使用Jackson或GSON以这种方式漂亮地打印json,例如Pretty-Print JSON in Java
但是,我发现使用Jackson ObjectMapper可以做到这一点,如果我有十进制值(例如“ 10000.00”),它将把它们解析为BigDecimal或Double,最后将其写为“ 10000.0”(double)或“ 1E + 4”(BigDecimal)。
我想要的是一种格式化JSON的方式,该方式仅影响空格,并且不会干扰任何值的内容-如果输入为“ 10000.00”,则输出必须为“ 10000.00”
有人知道可以处理该问题的Java JSON库吗?
答案 0 :(得分:1)
Underscore-java库具有静态方法U.formatJson(json)
。它将保留双精度值。 12.0将被格式化为12.0。我是该项目的维护者。
答案 1 :(得分:-1)
JSON {"value":5.0}
和{"value":"5.0"}
之间存在区别,在第二种情况下,"5.0"
值将被视为String
,并且不会被修改。在第一种情况下,它将被检测为数值型并且可以修改。因此,要么要求您的JSON带有数字值,要么在解析JSON字符串之前在您的代码中自己做。另外,如果您自己从某个对象生成JSON,则您拥有
private Double myValue;
有吸气剂
@JsonIgnore
Double getMyValue() {
return myValue;
}
并添加另一个吸气剂
@JsonProperty(name="myValue")
String getMyValueStr() {
return myValue.toString();
}
所有注释均针对Jason-Jackson。