错误堆栈信息如下:
org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "HPYS" (Class com.traffic.entity.BusBaseInfo), not marked as ignorable at [Source: java.io.StringReader@76c5faf5; line: 1, column: 84] (through reference chain: com.traffic.entity.BusBaseInfoBody["result"]->com.traffic.entity.BusBaseInfo["HPYS"]) at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53) at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:246) at org.codehaus.jackson.map.deser.StdDeserializer.reportUnknownProperty(StdDeserializer.java:604) at org.codehaus.jackson.map.deser.StdDeserializer.handleUnknownProperty(StdDeserializer.java:590) at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:689) at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:514) at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:350) at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:120) at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:97) at org.codehaus.jackson.map.deser.CollectionDeserializer.deserialize(CollectionDeserializer.java:26) at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:252) at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:356) at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:494) at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:350) at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2395) at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1595) at com.trafficframework.core.util.JSONHelper.fromJsonToObject(JSONHelper.java:72) at com.traffic.client.GetCarInfoUtil.main(GetCarInfoUtil.java:188)
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
2、属性大小写问题,如下 属性全部大写,JackSon 默认是通过驼式命名法 处理 比如 nickName 这样儿,有时比较特殊,比如映入其他系统的字段,可能都是大写,
可以通过@JsonProperty(value = "HPHM")处理
/** 车牌号码 */ @JsonProperty(value = "HPHM") private String HPHM; /** 车牌颜色 */ @JsonProperty(value = "HPYS") private String HPYS; /** 车辆颜色 */ @JsonProperty(value = "CSYS") private String CSYS; /** 车辆类型 */ @JsonProperty(value = "CLLX") private Integer CLLX;
final ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(new PropertyNamingStrategy() { private static final long serialVersionUID = 1L; // 反序列化时调用 @Override public String nameForSetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName) { return method.getName().toUpperCase(); } // 序列化时调用 @Override public String nameForGetterMethod(MapperConfig<?> config, AnnotatedMethod method, String defaultName) { return method.getName().toUpperCase(); } });