两种方式
1 忽略json上未知的字段
设置实体类注解
@JsonIgnoreProperties(ignoreUnknown = true) public class Foo { ... }
2 配置objectMapper
public static <T> T JsonNode2Entity(JsonNode node,Class t ,boolean throwErr) throws RuntimeException { ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); //忽略大小写 objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); //json 为SNAKE_CASE 实体为lowerCase Camel objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES,false); //对未知的属性不处理 try { return (T) objectMapper.readValue(node.toString(), t); } catch (java.lang.Exception e) { e.printStackTrace(); if(throwErr){ //ThrowWarnning(ErrorCode.Err_ParseParam); throw new RuntimeException("参数解析失败"); } return null; } }
例:
snake_case json