소스 검색

fastJson工具类增加方法

gaodm 6 년 전
부모
커밋
1c18c3ab81

+ 2 - 2
common/pom.xml

@@ -79,8 +79,8 @@
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>fastjson</artifactId>
-            <version>1.2.49</version>
-            <scope>provided</scope>
+            <version>1.2.54</version>
+            <scope>compile</scope>
         </dependency>
 
         <!--POI-->

+ 30 - 3
common/src/main/java/com/diagbot/util/FastJsonUtils.java

@@ -1,11 +1,14 @@
 package com.diagbot.util;
 
-import java.util.List;
-import java.util.Map;
-
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.TypeReference;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @Description: 基于fastjson封装的json转换工具类 (大量数据用)
  * @author: gaodm
@@ -57,4 +60,28 @@ public class FastJsonUtils {
         });
     }
 
+    /***
+     * 解析为列表
+     *
+     * @param jsonString
+     * @param key
+     * @param t
+     * @param <T>
+     * @return
+     */
+    public static <T> ArrayList<T> getJsonToListByKey(String jsonString, String key, Class<T> t) {
+        ArrayList<T> list = new ArrayList<T>();
+        if (StringUtil.isNotBlank(jsonString)) {
+            try {
+                JSONObject jsonObj = JSONObject.parseObject(jsonString);
+                JSONArray inforArray = jsonObj.getJSONArray(key);
+                for (int index = 0; index < inforArray.size(); index++) {
+                    list.add(JSONObject.toJavaObject(
+                            inforArray.getJSONObject(index), t));
+                }
+            } catch (Exception e) {
+            }
+        }
+        return list;
+    }
 }

+ 0 - 7
icss-service/pom.xml

@@ -137,13 +137,6 @@
             <artifactId>druid-spring-boot-starter</artifactId>
         </dependency>
 
-        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
-        <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
-            <version>1.2.46</version>
-        </dependency>
-
         <!-- springboot整合mybatis(核心就这一个) -->
         <!-- 注意顺序,这个一定要放在最下面 -->
         <dependency>

+ 3 - 9
icss-service/src/main/java/com/diagbot/facade/TreatmentFacade.java

@@ -1,7 +1,5 @@
 package com.diagbot.facade;
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.client.TreatServiceClient;
 import com.diagbot.client.bean.GdbResponse;
@@ -19,6 +17,7 @@ import com.diagbot.enums.QuestionTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.FastJsonUtils;
 import com.diagbot.util.StringUtil;
 import com.diagbot.vo.TreatmentVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -85,13 +84,8 @@ public class TreatmentFacade {
             treatmentDTO.setMap(retMap);
             return treatmentDTO;
         }
-        JSONObject jsonObject = JSONObject.parseObject(resultDes);
-        JSONArray treatJsonArray = jsonObject.getJSONArray("treatment");
-        if (treatJsonArray.size() == 0) {
-            treatmentDTO.setMap(retMap);
-            return treatmentDTO;
-        }
-        List<MedicitionClass> drugsList = JSONObject.parseArray(treatJsonArray.toJSONString(), MedicitionClass.class);
+
+        List<MedicitionClass> drugsList = FastJsonUtils.getJsonToListByKey(resultDes, "treatment", MedicitionClass.class);
 
         List<String> classNameList = drugsList.stream().map(drugs -> drugs.getDrugsName()).collect(Collectors.toList());
         List<QuestionInfo> drugClassList = getTopQuestionList(classNameList, QuestionTypeEnum.DrugClass.getKey());