[英]Jackson custom deserialize with @JsonPOJOBuilder
我有這樣的情況:
@Getter //lombook
@Bulider //lombook
@JsonDeserialize(builder = Person.PersonBuilder.class)
public class Person {
//...
@JsonDeserialize(using = RawJsonDeserializer.class)
private String someString;
@JsonPOJOBuilder
public static class PersonBuilder{
//...
}
}
我的自定義反序列化器:
/**
* Deserializes from JSON object to string.
*/
public class RawJsonDeserializer extends JsonDeserializer<String> {
@Override
public String deserialize(JsonParser parser, DeserializationContext context) throws IOException,
JsonParseException {
ObjectMapper mapper = (ObjectMapper) parser.getCodec();
return mapper.writeValueAsString(mapper.readTree(parser));
}
}
問題是忽略 RawJsonDeserializer 反序列化器。 當我嘗試從 JSON 獲取 Person object 時如何調用它? 例如:從 JSON ->
{
"someString": {
"key": "value"
}
}
到人 object 字段someString是字符串 - >
Assert.assertEquals("{\"key\": \"value\"},person.getSomeString());" \\ true
我不熟悉 Json 序列化,但看起來像序列化它是將 dto 轉換為文本表示。 但是在您的示例中,您使用 JsonDeserializer 出了什么問題。 可能是我誤解了什么。 您還收集 json object 表單文本並再次將其轉換為文本,這讓我很困惑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.