Java 8 Java Jackson writeAsString转换
将Java8与jackson一起使用 我有代码将一个类转换成json字符串,这很好,我有一个场景,如果我希望rate1和rate2的值是空字符串,如果某些值是空的 我想知道是否有快速简便的方法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
@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注释,然后您可以只自定义您需要的字段,而不是整个类