Web 服务返回一个空字符串而不是 NULL,这会导致 Jackson 崩溃。所以我创建了一个自定义解析器,我试图手动解析它?任何想法我怎么能做到这一点?
我在这里做错了什么?我要做的就是像往常一样将 JSON 解析为对象。使用 @JsonProperty 将字段名称添加到我的属性中,因此解析器应该知道如何转换它。
public class InsertReplyDeserializer extends JsonDeserializer<ListingReply> {
@Override
public ListingReply deserialize(JsonParser jsonParser, DeserializationContext arg1)
throws IOException, JsonProcessingException {
ObjectCodec oc = jsonParser.getCodec();
JsonNode node = oc.readTree(jsonParser);
// If service returns "" instead of null return a NULL object and don't try to parse
if (node.getValueAsText() == "")
return null;
ObjectMapper objectMapper = new ObjectMapper();
ListingReply listingReply = objectMapper.readValue(node, ListingReply.class);
return listingReply;
}
}