背景大概是这样,项目中的两个服务A和B依赖了同一个common包的Java类,A对该类json序列化,而B对其反序列化。在一次common包升级过程中,这个Java类中增加了一个属性,由于B其实用不到这个属性,就只把A给升级打包了,这就导致B在反序列化时出现了一个异常:com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field 。
使用代码简单示例一下:
package com.suspect.json.model;
import lombok.*;
@ToString
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class Student {
String name;
Integer age;
String gender;
}
package com.suspect.json;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.suspect.json.model.Student;
import java.io.IOException;
public class Application {
public static void main(String[] args) throws IOException {
ObjectMapper objectMapper = new ObjectMapper();
String srcJsonString = "{\"number\":\"110