在乏味研究杰克逊工作方式之后,我以JSON格式进行了序列化/对POJO对象进行序列化。但是我在杰克逊库的范围中找不到的是如何在序列化对象上执行CRUD操作,或者即使可能。
即,我有一个对象列表,我将其序列化为JsonArray,并且我想在该列表中的对象上执行一个CRUD操作。我的问题是,如何在不考虑整个对象列表的情况下完成并再次使用新值序列化或无需实现某种自定义解析器?
如果您想在完全避免之前将修改为序列化的JSON对象,则可以定义自定义求职者。
示例:
public class CustomDeserializer extends JsonDeserializer {
@Override
public Value deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
JsonNode node = jp.getCodec().readTree(jp);
// there you can apply your custom logic to the JsonNode
// and return value according to your business logic
return new Value(...);
}
}
如果在ObjectMapper中注册,则可以将其用于任何对象。另外,您可以在@JsonDeserialize(using = CustomDeserializer.class)
类上的注释中使用它。