Java 8 Java Jackson writeAsString转换

Java 8 Java Jackson writeAsString转换,java-8,jackson,Java 8,Jackson,将Java8与jackson一起使用 我有代码将一个类转换成json字符串,这很好,我有一个场景,如果我希望rate1和rate2的值是空字符串,如果某些值是空的 我想知道是否有快速简便的方法 @JsonAutoDetect(fieldVisiblity=ANY) class A{ UUID id; CustomEnumType type; BigDecimal value; BigDecimal rate1 BigDecimal rat

将Java8与jackson一起使用

我有代码将一个类转换成json字符串,这很好,我有一个场景,如果我希望rate1和rate2的值是空字符串,如果某些值是空的

我想知道是否有快速简便的方法

    @JsonAutoDetect(fieldVisiblity=ANY)
    class A{

    UUID id;
    CustomEnumType type;
    BigDecimal value;
    BigDecimal rate1
    BigDecimal rate2;
    }

A a = new A();
// a filled up with values
string jsonStr = objectMapper.writeValueAsString(a);
我尝试如下使用自定义Seralizer类,但不确定如何转换UUID字符串表示形式

public class ASerializer extends StdSerializer<A>{

... ASerializer()..

@Override
public void serialize(A value, JsonGenerator g, SerializerProvider p){
  g.writeStratObject();
  // how do i convert UUID to string ? 

  g.writeEndObject();


   }
}
公共类ASerializer扩展了StdSerializer{
…ASerializer()。。
@凌驾
public void serialize(一个值,JsonGenerator g,SerializerProvider p){
g、 WriteStrotObject();
//如何将UUID转换为字符串?
g、 writeEndObject();
}
}

只需调用
toString
,UUID就可以使用静态
fromString
方法进行反序列化

这是可行的,但我想更改rate1和rate2的值,我必须编写代码来生成自定义json。将来,如果我们在seralizer中添加我必须添加的任何字段:(您可以在字段上应用serialiser/deserialiser注释,然后您可以只自定义您需要的字段,而不是整个类