소스 검색

fix(adm-diagram): GsonUtil 增加DiagramNode序列化配置、修复bug

liyang 3 년 전
부모
커밋
8064655e0a
1개의 변경된 파일6개의 추가작업 그리고 4개의 파일을 삭제
  1. 6 4
      adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/core/util/GsonUtil.java

+ 6 - 4
adm-business/adm-diagram/src/main/java/com/persagy/adm/diagram/core/util/GsonUtil.java

@@ -1,6 +1,7 @@
 package com.persagy.adm.diagram.core.util;
 
 import com.google.gson.*;
+import com.persagy.adm.diagram.core.model.DiagramNode;
 import com.persagy.adm.diagram.core.model.EquipmentNode;
 import com.persagy.adm.diagram.core.model.Label;
 import com.persagy.adm.diagram.core.model.base.Container;
@@ -29,6 +30,7 @@ public class GsonUtil {
 		GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
 		gsonBuilder.registerTypeAdapter(IComponent.class, new CompAdapter());
 		gsonBuilder.registerTypeAdapter(DataFilter.class, new FilterAdapter());
+		gsonBuilder.registerTypeAdapter(DiagramNode.class, new CompAdapter());
 		gson = gsonBuilder.create();
 
 		formattedGson = new GsonBuilder().setPrettyPrinting().create();
@@ -48,13 +50,13 @@ public class GsonUtil {
 		@Override
 		public IComponent deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
 			Class<? extends IComponent> target = Container.class;
-			if(Container.TYPE.equals(jsonElement.getAsJsonObject().get("compType")))
+			if(Container.TYPE.equals(jsonElement.getAsJsonObject().get("compType").getAsString()))
 				target = Container.class;
-			else if(EquipmentNode.TYPE.equals(jsonElement.getAsJsonObject().get("compType")))
+			else if(EquipmentNode.TYPE.equals(jsonElement.getAsJsonObject().get("compType").getAsString()))
 				target = EquipmentNode.class;
-			else if(PackNode.TYPE.equals(jsonElement.getAsJsonObject().get("compType")))
+			else if(PackNode.TYPE.equals(jsonElement.getAsJsonObject().get("compType").getAsString()))
 				target = PackNode.class;
-			else if(Label.TYPE.equals(jsonElement.getAsJsonObject().get("compType")))
+			else if(Label.TYPE.equals(jsonElement.getAsJsonObject().get("compType").getAsString()))
 				target = Label.class;
 			else {
 				//TODO 其他类型