簡體   English   中英

使用 java 漂亮地打印 JSON,無需格式化值

[英]pretty print JSON using java, without formatting the values

我知道大多數 Java json 庫都可以通過

  • 解析為通用模型,然后
  • 序列化模型。

StackOverflow 上有無數現有的問題,它們告訴您使用 Jackson 或 GS​​ON 以這種方式漂亮地打印 json,例如Java 中的 Pretty-Print JSON

但是,我發現使用 Jackson ObjectMapper 來執行此操作,如果我有十進制值,例如“10000.00”,它會將它們解析為 BigDecimal 或 Double,然后最終將其寫為“10000.0”(雙精度)或“1E+” 4"(大十進制)。

我想要的是一種格式化 JSON 的方法,它只影響空格,並且不會干擾任何值的內容 - 如果輸入是“10000.00”,則輸出必須是“10000.00”

有誰知道可以處理的 Java JSON 庫?

U.formatJson(json) -java庫有靜態方法U.formatJson(json) 它將保持雙精度值不變。 12.0 將被格式化為 12.0。 我是項目的維護者。

JSONs {"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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM