Просмотр исходного кода

添加泰康 UnknownFieldEntity

wlq 1 год назад
Родитель
Сommit
d8ffea1fbb

+ 54 - 0
tenant/insurance/quotation-taikang/src/main/java/com/jzg/quotation/taikang/client/UnknownFieldEntity.java

@@ -0,0 +1,54 @@
+package com.jzg.quotation.taikang.client;
+
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+public class UnknownFieldEntity {
+
+    private Map<String, Object> unknownFields;
+
+    @JsonAnySetter
+    public final void addUnknownFields(String key, Object value) {
+        if (unknownFields == null) {
+            unknownFields = new LinkedHashMap<>();
+        }
+
+        unknownFields.put(key, value);
+    }
+
+    public final Map<String, Object> getUnknownFields() {
+        addChildUnknownFields();
+
+        return unknownFields;
+    }
+
+    protected final void addChildUnknownField(String key, Object value) {
+        if (value == this) {
+            return;
+        }
+
+        if (!(value instanceof UnknownFieldEntity)) {
+            return;
+        }
+
+        UnknownFieldEntity entity = (UnknownFieldEntity) value;
+
+        Map<String, Object> childUnknownFields = entity.getUnknownFields();
+
+        if (childUnknownFields == null || childUnknownFields.isEmpty()) {
+            return;
+        }
+
+        if (unknownFields == null) {
+            unknownFields = new LinkedHashMap<>();
+        }
+
+        unknownFields.put(key, childUnknownFields);
+    }
+
+    protected void addChildUnknownFields() {
+
+    }
+}

+ 194 - 0
tenant/insurance/quotation-taikang/src/test/java/com/jzg/quotation/taikang/client/UnknownFieldEntityTest.java

@@ -0,0 +1,194 @@
+package com.jzg.quotation.taikang.client;
+
+import com.alibaba.fastjson2.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import java.util.Map;
+
+public class UnknownFieldEntityTest {
+
+    static class AA extends UnknownFieldEntity {
+        private String name;
+        private String value;
+
+        private AA_BB aa_bb;
+        private AA_CC aa_cc;
+
+        @Override
+        protected void addChildUnknownFields() {
+            addChildUnknownField("aa_bb", aa_bb);
+            addChildUnknownField("aa_cc", aa_cc);
+        }
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public String getValue() {
+            return value;
+        }
+
+        public void setValue(String value) {
+            this.value = value;
+        }
+
+        public AA_BB getAa_bb() {
+            return aa_bb;
+        }
+
+        public void setAa_bb(AA_BB aa_bb) {
+            this.aa_bb = aa_bb;
+        }
+
+        public AA_CC getAa_cc() {
+            return aa_cc;
+        }
+
+        public void setAa_cc(AA_CC aa_cc) {
+            this.aa_cc = aa_cc;
+        }
+    }
+
+    static class AA_BB extends UnknownFieldEntity {
+        private String bbCode;
+        private String bbName;
+
+        private AA_BB_DD aa_bb_dd;
+        private AA_BB_EE aa_bb_ee;
+
+        @Override
+        protected void addChildUnknownFields() {
+            addChildUnknownField("aa_bb_dd", aa_bb_dd);
+            addChildUnknownField("aa_bb_ee", aa_bb_ee);
+        }
+
+        public String getBbCode() {
+            return bbCode;
+        }
+
+        public void setBbCode(String bbCode) {
+            this.bbCode = bbCode;
+        }
+
+        public String getBbName() {
+            return bbName;
+        }
+
+        public void setBbName(String bbName) {
+            this.bbName = bbName;
+        }
+
+        public AA_BB_DD getAa_bb_dd() {
+            return aa_bb_dd;
+        }
+
+        public void setAa_bb_dd(AA_BB_DD aa_bb_dd) {
+            this.aa_bb_dd = aa_bb_dd;
+        }
+
+        public AA_BB_EE getAa_bb_ee() {
+            return aa_bb_ee;
+        }
+
+        public void setAa_bb_ee(AA_BB_EE aa_bb_ee) {
+            this.aa_bb_ee = aa_bb_ee;
+        }
+    }
+
+    static class AA_CC extends UnknownFieldEntity {
+        private String ccCode;
+        private String ccName;
+
+        public String getCcCode() {
+            return ccCode;
+        }
+
+        public void setCcCode(String ccCode) {
+            this.ccCode = ccCode;
+        }
+
+        public String getCcName() {
+            return ccName;
+        }
+
+        public void setCcName(String ccName) {
+            this.ccName = ccName;
+        }
+    }
+
+
+    static class AA_BB_DD extends UnknownFieldEntity {
+        private String ddCode;
+        private String ddName;
+
+        public String getDdCode() {
+            return ddCode;
+        }
+
+        public void setDdCode(String ddCode) {
+            this.ddCode = ddCode;
+        }
+
+        public String getDdName() {
+            return ddName;
+        }
+
+        public void setDdName(String ddName) {
+            this.ddName = ddName;
+        }
+    }
+
+    static class AA_BB_EE extends UnknownFieldEntity {
+        private String eeCode;
+        private String eeName;
+
+        public String getEeCode() {
+            return eeCode;
+        }
+
+        public void setEeCode(String eeCode) {
+            this.eeCode = eeCode;
+        }
+
+        public String getEeName() {
+            return eeName;
+        }
+
+        public void setEeName(String eeName) {
+            this.eeName = eeName;
+        }
+    }
+
+    public static void main(String[] args) {
+        String json = """
+                {
+                   "name" : "张三",
+                   "value" : "李四",
+                   "sex" : 1,
+                   "map" : {
+                      "aa" : "aa",
+                	  "bb" : [ "bb" ]
+                   },
+                   "aa_bb" : {
+                       "xxx" : "王五"
+                   }
+                }
+                """;
+
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            AA entity = mapper.readValue(json, AA.class);
+            System.out.println("实体类: " + JSON.toJSONString(entity));
+
+            Map<String, Object> unknownFields = entity.getUnknownFields();
+            System.out.println("未知字段: " + JSON.toJSONString(unknownFields));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}