Sfoglia il codice sorgente

fix:解析微信返回的数据获取昨日新增关注信息

wrj 4 giorni fa
parent
commit
867d714692

+ 16 - 8
nightFragrance-massage/src/main/java/com/ylx/massage/utils/WeChatUtil.java

@@ -146,19 +146,25 @@ public class WeChatUtil {
         String result = HttpUtil.post(urlStr, param1.toString());
 
         log.info("getFollowers-获取关注量请求参数:{}", param1);
-        Map<?, ?> map = JSONObject.parseObject(result, Map.class);
-        log.info("getFollowers-获取关注量返回:{}", map);
 
-        Object listObj = map.get("list");
-        if (listObj == null || listObj.toString().equals("[]")) {
-            return "0"; // 空数据,默认返回 0
+        cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(result);
+        log.info("getFollowers-获取关注量返回:{}", jsonObject);
+
+        Object listObj = jsonObject.get("list");
+        if (listObj == null || JSONUtil.isNull(listObj)) {
+            return "0";
         }
+
         JSONArray list;
         try {
             if (listObj instanceof JSONArray) {
                 list = (JSONArray) listObj;
             } else if (listObj instanceof String) {
-                list = JSONUtil.parseArray(listObj.toString()); // 使用 Hutool 转换字符串为 JSONArray
+                list = JSONUtil.parseArray(listObj.toString());
+            } else if (listObj.getClass().getName().contains("ArrayList")) {
+                // 如果是 FastJSON 返回的 ArrayList,转换为 JSON 字符串后再解析
+                String jsonArrayStr = JSONUtil.toJsonStr(listObj);
+                list = JSONUtil.parseArray(jsonArrayStr);
             } else {
                 throw new ServiceException("返回数据格式错误,list字段无法识别");
             }
@@ -166,11 +172,13 @@ public class WeChatUtil {
             log.error("解析list字段失败: {}", listObj, e);
             return "0";
         }
+
         if (list.isEmpty()) {
             return "0";
         }
-        JSONObject jsonObject = (JSONObject) list.get(0);
-        return (String) jsonObject.get("new_user");
+
+        cn.hutool.json.JSONObject jsonObjectItem = list.getJSONObject(0);
+        return jsonObjectItem.getStr("new_user");
     }
 
     /**