实现此目标的唯一方法是使用自定义解串器。
这是一个例子:
ObjectMapper mapper = new ObjectMapper();SimpleModule testModule = new SimpleModule("MyModule", new Version(1, 0, 0, null));testModule.addDeserializer(Response.class, new ResponseJsonDeserializer());mapper.registerModule(testModule);
这是如何编写(至少我应该如何编写)反序列化器的方法:
class ResponseJsonDeserializer extends JsonDeserializer<Response> { @Override public Responsedeserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { Response response = new Response(); if(jp.getCurrentToken() == JsonToken.VALUE_STRING) { response.setError(jp.getText()); } else { // Deserialize object } return response; }}class Response { private String error; private Object otherObject; // Use the real type of your object public boolean isError() { return error != null; } // Getters and setters}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)