jackson 删除非转义字符并格式化 json

问题描述 投票:0回答:1

我怎样才能改变这个:

"parameters" : [ "{name:\"xx\", value:\"45\",typRef:\"FE\",unit:\"grad\"}" ],

对此:

"parameters" : [ {
        "name" : "xx",
        "value" : "45",
        "typRef" : "FE",      
        "unit" : "grad"
        }]

我使用 objectMapper 写成 String

public class ParameterClass 
   {
      @NonNull private final String name;
      @JsonInclude(JsonInclude.Include.NON_NULL) private final String value;
      @JsonInclude(JsonInclude.Include.NON_NULL) private final typRef;
      @JsonInclude(JsonInclude.Include.NON_NULL) private final String unit;

      private ParameterClass (@NonNull String name, String value, String typRef, String unit)
      {
         this.name = name;
         this.value = value;
         this.typRef = typRef;
         this.unit = unit;
      }

构建json的方法

buildAsJson(String name, String unit, ...) {
ParameterClass parameter = new ParameterClass(name, unit, ..);
return objectMapper.writeValueAsString(parameter);
}

我把所有的都收集到一个列表中:

List<String> parameters = List.of(buildAsJson("xx", "45", ...), buildAsJson(...)) 
java json jackson jackson-databind objectmapper
1个回答
0
投票

只需存储字符串

parameter
,然后使用
objectMapper.readTree(...)
读取该 JSON 字符串。如果 JSON 字符串有效,它会将 JSON 字符串转换为有效的 JSON 格式。

JsonNode buildAsJson(String name, String unit, ...) {
  ParameterClass parameter = new ParameterClass(name, unit, ..);
  String parameter = objectMapper.writeValueAsString(parameter);
  return objectMapper.readTree(parameter);
}
© www.soinside.com 2019 - 2024. All rights reserved.