我正在使用杰克逊图书馆与2.6.3。我想在类中定义序列化方法,我想指示Jackson在序列化对象时调用此方法。
E.g。
public interface AClass {
default String toJSON(){
return "{JSON}";
}
}
然后我
public class AnotherClass {
AClass aClass;
}
当我序列化AnotherClass
时,我“假装”调用来自A toJson
的方法Class
以返回对象的JSON视图。
我可以在AClass
上使用任何注释吗?
答案 0 :(得分:1)
是的,可以使用@JsonValue和@JsonRawValue注释。这是一个例子:
uasort($ary, function ($a, $b) {
return floatval($b->price) - floatval($a->price);
});
输出:
public class JacksonValue {
public interface AClass {
@JsonValue
@JsonRawValue
default String toJSON(){
return "{\"JSON\":true}";
}
}
public static class AnotherClass {
@JsonProperty
AClass aClass = new AClass() {};
}
public static void main(String[] args) throws JsonProcessingException {
final ObjectMapper mapper = new ObjectMapper();
System.out.println(mapper.writeValueAsString(new AnotherClass()));
}
}