解析出子类属性 标签 —SerializerFeature.WriteClassName
Demo:
public class Parent extends BaseSerializable{
private String p1;
private String p2;
public String getP1() {
return p1;
}
public void setP1(String p1) {
this.p1 = p1;
}
public String getP2() {
return p2;
}
public void setP2(String p2) {
this.p2 = p2;
}
}
public class Son extends Parent {
private String s1;
private String s2;
public String getS1() {
return s1;
}
public void setS1(String s1) {
this.s1 = s1;
}
public String getS2() {
return s2;
}
public void setS2(String s2) {
this.s2 = s2;
}
public static void main(String[] args) {
Son son = new Son();
son.setS1("s1");
son.setS2("s2");
son.setP1("sp1");
son.setP2("sp2");
Son2 _son = new Son2();
_son.setSs1("s1");
_son.setS1("s1");
_son.setS2("s2");
_son.setP1("sp1");
_son.setP2("sp2");
ArrayList<Parent> arr= new ArrayList<>();
arr.add(son);
arr.add(_son);
SerializerFeature[] features = new SerializerFeature[]{SerializerFeature.WriteClassName};
String json = JSON.toJSONString(arr, features);
List<Parent> p = JSONObject.parseArray(json, Parent.class);
}
public class Son2 extends Parent{
private String s1;
private String s2;
private String ss1;
public String getS1() {
return s1;
}
public void setS1(String s1) {
this.s1 = s1;
}
public String getS2() {
return s2;
}
public void setS2(String s2) {
this.s2 = s2;
}
public String getSs1() {
return ss1;
}
public void setSs1(String ss1) {
this.ss1 = ss1;
}
}