|
|
@@ -3,6 +3,8 @@ package com.jzg.quotation.taikang.client;
|
|
|
import com.fasterxml.jackson.annotation.JsonAnySetter;
|
|
|
|
|
|
import java.util.LinkedHashMap;
|
|
|
+import java.util.LinkedList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
public class UnknownFieldEntity {
|
|
|
@@ -26,26 +28,49 @@ public class UnknownFieldEntity {
|
|
|
|
|
|
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 (value instanceof UnknownFieldEntity) {
|
|
|
+ // 处理嵌套的 UnknownFieldEntity
|
|
|
+ UnknownFieldEntity entity = (UnknownFieldEntity) value;
|
|
|
+ Map<String, Object> childUnknownFields = entity.getUnknownFields();
|
|
|
+
|
|
|
+ if (childUnknownFields != null && !childUnknownFields.isEmpty()) {
|
|
|
+ if (unknownFields == null) {
|
|
|
+ unknownFields = new LinkedHashMap<>();
|
|
|
+ }
|
|
|
+ unknownFields.put(key, childUnknownFields);
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (value instanceof List) {
|
|
|
+ // 处理 List 类型的字段
|
|
|
+ List<?> list = (List<?>) value;
|
|
|
+
|
|
|
+ if (!list.isEmpty()) {
|
|
|
+ List<Object> w = new LinkedList<>();
|
|
|
+
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ Object item = list.get(i);
|
|
|
+ if (item instanceof UnknownFieldEntity) {
|
|
|
+ // 递归处理 List 中的 UnknownFieldEntity
|
|
|
+ UnknownFieldEntity entity = (UnknownFieldEntity) item;
|
|
|
+ Map<String, Object> childUnknownFields = entity.getUnknownFields();
|
|
|
+ if (childUnknownFields != null && !childUnknownFields.isEmpty()) {
|
|
|
+ w.add(childUnknownFields);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!w.isEmpty()) {
|
|
|
+ if (unknownFields == null) {
|
|
|
+ unknownFields = new LinkedHashMap<>();
|
|
|
+ }
|
|
|
+ unknownFields.put(key, w);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- if (unknownFields == null) {
|
|
|
- unknownFields = new LinkedHashMap<>();
|
|
|
- }
|
|
|
-
|
|
|
- unknownFields.put(key, childUnknownFields);
|
|
|
}
|
|
|
|
|
|
protected void addChildUnknownFields() {
|