From 740bc07a2bdb21823cdb820e6f128d03e5c1a347 Mon Sep 17 00:00:00 2001 From: bamanker <27054792@qq.com> Date: Mon, 5 Jan 2026 22:36:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8jackson=E6=9B=BF=E6=8D=A2fastjson?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 13 ++-- .../controller/PushDailyController.java | 62 ++++++++++++------- .../dailylove/DailyLoveApplicationTests.java | 18 ------ 3 files changed, 48 insertions(+), 45 deletions(-) diff --git a/pom.xml b/pom.xml index 2c3f097..6149bc7 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ 25 25 25 - 2.0.60 + 5.0.0 5.8.25 registry.cn-chengdu.aliyuncs.com/bamanker @@ -60,11 +60,16 @@ spring-cloud-starter-openfeign ${openfeign.version} + - com.alibaba.fastjson2 - fastjson2 - ${fastjson.version} + tools.jackson.core + jackson-core + + + + + org.springframework.boot spring-boot-starter-web diff --git a/src/main/java/com/bamanker/dailylove/controller/PushDailyController.java b/src/main/java/com/bamanker/dailylove/controller/PushDailyController.java index e9a8e2a..0f70562 100644 --- a/src/main/java/com/bamanker/dailylove/controller/PushDailyController.java +++ b/src/main/java/com/bamanker/dailylove/controller/PushDailyController.java @@ -2,18 +2,18 @@ package com.bamanker.dailylove.controller; import cn.hutool.core.date.ChineseDate; import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONObject; import com.bamanker.dailylove.config.DailyLoveConfigure; import com.bamanker.dailylove.domain.*; import com.bamanker.dailylove.service.DataRemoteClient; import com.bamanker.dailylove.service.WechatRequestClient; import com.bamanker.dailylove.utils.DataUtils; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; -import jakarta.annotation.Resource; +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; + import java.text.SimpleDateFormat; import java.util.Date; @@ -21,15 +21,20 @@ import java.util.Date; @RestController public class PushDailyController { + final + ObjectMapper mapper; + + final DataRemoteClient dataRemoteClient; final WechatRequestClient wechatRequestClient; - public PushDailyController(DataRemoteClient dataRemoteClient, WechatRequestClient wechatRequestClient) { + public PushDailyController(DataRemoteClient dataRemoteClient, WechatRequestClient wechatRequestClient, ObjectMapper mapper) { this.dataRemoteClient = dataRemoteClient; this.wechatRequestClient = wechatRequestClient; + this.mapper = mapper; } /** @@ -49,9 +54,11 @@ public class PushDailyController { param1.setCity(DailyLoveConfigure.City_ID); param1.setType("7"); String weatherResp = dataRemoteClient.getWeather(param1); - JSONObject weatherJson = JSONObject.parseObject(weatherResp).getJSONArray("result").getJSONObject(0).getJSONArray("list").getJSONObject(1); - String city = JSONObject.parseObject(weatherResp).getJSONArray("result").getJSONObject(0).getString("area"); - Weather weather = weatherJson.toJavaObject(Weather.class); + JsonNode weatherJson = mapper.readTree(weatherResp).get("result").get(0).get("list").get(1); + String city = mapper.readTree(weatherResp).get("result").get(0).get("area").asString(); +// JSONObject weatherJson1 = JSONObject.parseObject(weatherResp).getJSONArray("result").getJSONObject(0).getJSONArray("list").getJSONObject(1); +// String city1 = JSONObject.parseObject(weatherResp).getJSONArray("result").getJSONObject(0).getString("area"); + Weather weather = mapper.treeToValue(weatherJson, Weather.class); resultVo.setAttribute("tomorrow", new DataItem(weather.getDate() + " " + weather.getWeek(), DailyLoveConfigure.Color_tomorrow)); resultVo.setAttribute("city", new DataItem(city, DailyLoveConfigure.Color_city)); @@ -65,15 +72,18 @@ public class PushDailyController { param2.setKey(DailyLoveConfigure.TianXin_Key); String tipsResp = dataRemoteClient.getTips(param2); - String tips = JSONObject.parseObject(tipsResp).getJSONArray("result").getJSONObject(0).getString("content"); + String tips = mapper.readTree(tipsResp).get("result").get(0).get("content").asString(); +// String tips1 = JSONObject.parseObject(tipsResp).getJSONArray("result").getJSONObject(0).getString("content"); resultVo.setAttribute("tips", new DataItem(tips, DailyLoveConfigure.Color_tips)); String nightResp = dataRemoteClient.getNight(param2); - String night = JSONObject.parseObject(nightResp).getJSONArray("result").getJSONObject(0).getString("content"); + String night = mapper.readTree(nightResp).get("result").get(0).get("content").asString(); +// String night1 = JSONObject.parseObject(nightResp).getJSONArray("result").getJSONObject(0).getString("content"); resultVo.setAttribute("night", new DataItem(night, DailyLoveConfigure.Color_night)); String rainbowResp = dataRemoteClient.getRainbow(param2); - String rainbow = JSONObject.parseObject(rainbowResp).getJSONArray("result").getJSONObject(0).getString("content"); + String rainbow = mapper.readTree(rainbowResp).get("result").get(0).get("content").asString(); +// String rainbow1 = JSONObject.parseObject(rainbowResp).getJSONArray("result").getJSONObject(0).getString("content"); resultVo.setAttribute("rainbow", new DataItem(rainbow, DailyLoveConfigure.Color_dailyCn)); // String englishResp = dataRemoteClient.getDailyEnglish(param2); @@ -127,9 +137,9 @@ public class PushDailyController { String accessTokenResp = wechatRequestClient.getAccessToken(wechatTokenParam); log.debug("accessTokenJson:{}", accessTokenResp); - String token = JSONObject.parseObject(accessTokenResp).getString("access_token"); - String responseStr = wechatRequestClient.sendMsg(resultVo, token); - return responseStr; + String token = mapper.readTree(accessTokenResp).get("access_token").asString(); +// String token1 = JSONObject.parseObject(accessTokenResp).getString("access_token"); + return wechatRequestClient.sendMsg(resultVo, token); } @@ -144,9 +154,10 @@ public class PushDailyController { param1.setCity(DailyLoveConfigure.City_ID); param1.setType("1"); String weatherResp = dataRemoteClient.getWeather(param1); + JsonNode weatherJson = mapper.readTree(weatherResp).get("result").get(0); + Weather weather = mapper.treeToValue(weatherJson, Weather.class); - Weather weather = JSONObject.parseObject(weatherResp).getJSONArray("result").getJSONObject(0).toJavaObject(Weather.class); - +// Weather weather1 = JSONObject.parseObject(weatherResp).getJSONArray("result").getJSONObject(0).toJavaObject(Weather.class); ResultVo resultVo = ResultVo.initializeResultVo(DailyLoveConfigure.Open_ID, DailyLoveConfigure.Template_ID_Morning, @@ -168,11 +179,13 @@ public class PushDailyController { // resultVo.setAttribute("tips", new DataItem(tips, DailyLoveConfigure.Color_tips)); String morningResp = dataRemoteClient.getMorning(param2); - String morning = JSONObject.parseObject(morningResp).getJSONArray("result").getJSONObject(0).getString("content"); + String morning = mapper.readTree(morningResp).get("result").get(0).get("content").asString(); +// String morning1 = JSONObject.parseObject(morningResp).getJSONArray("result").getJSONObject(0).getString("content"); resultVo.setAttribute("morning", new DataItem(morning, DailyLoveConfigure.Color_morning)); String rainbowResp = dataRemoteClient.getRainbow(param2); - String rainbow = JSONObject.parseObject(rainbowResp).getJSONArray("result").getJSONObject(0).getString("content"); + String rainbow = mapper.readTree(rainbowResp).get("result").get(0).get("content").asString(); +// String rainbow1 = JSONObject.parseObject(rainbowResp).getJSONArray("result").getJSONObject(0).getString("content"); resultVo.setAttribute("rainbow", new DataItem(rainbow, DailyLoveConfigure.Color_dailyCn)); // String englishResp = dataRemoteClient.getDailyEnglish(param2); @@ -228,9 +241,9 @@ public class PushDailyController { String accessTokenResp = wechatRequestClient.getAccessToken(wechatTokenParam); log.debug("accessTokenJson:{}", accessTokenResp); - String token = JSONObject.parseObject(accessTokenResp).getString("access_token"); - String responseStr = wechatRequestClient.sendMsg(resultVo, token); - return responseStr; + String token = mapper.readTree(accessTokenResp).get("access_token").asString(); +// String token1 = JSONObject.parseObject(accessTokenResp).getString("access_token"); + return wechatRequestClient.sendMsg(resultVo, token); } @@ -240,9 +253,12 @@ public class PushDailyController { * @param responseStr */ private void printPushLog(String responseStr) { - JSONObject jsonObject = JSONObject.parseObject(responseStr); - String msgCode = jsonObject.getString("errcode"); - String msgContent = jsonObject.getString("errmsg"); + JsonNode jsonNode = mapper.readTree(responseStr); + String msgCode = jsonNode.get("errcode").asString(); + String msgContent = jsonNode.get("errmsg").asString(); +// JSONObject jsonObject = JSONObject.parseObject(responseStr); +// String msgCode1 = jsonObject.getString("errcode"); +// String msgContent1 = jsonObject.getString("errmsg"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println("[ " + dateFormat.format(new Date()) + " ] : messageCode=" + msgCode + ",messageContent=" + msgContent); } diff --git a/src/test/java/com/bamanker/dailylove/DailyLoveApplicationTests.java b/src/test/java/com/bamanker/dailylove/DailyLoveApplicationTests.java index 57a989c..6df95ea 100644 --- a/src/test/java/com/bamanker/dailylove/DailyLoveApplicationTests.java +++ b/src/test/java/com/bamanker/dailylove/DailyLoveApplicationTests.java @@ -1,26 +1,8 @@ package com.bamanker.dailylove; -import cn.hutool.core.date.ChineseDate; -import cn.hutool.core.date.DateUnit; -import cn.hutool.core.date.DateUtil; -import com.alibaba.fastjson2.JSONObject; -import com.bamanker.dailylove.config.DailyLoveConfigure; -import com.bamanker.dailylove.domain.TianXinReqParam; -import com.bamanker.dailylove.domain.Weather; -import com.bamanker.dailylove.service.DataRemoteClient; import lombok.extern.slf4j.Slf4j; -import org.bouncycastle.util.Strings; -import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; -import jakarta.annotation.Resource; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; - -import static com.bamanker.dailylove.utils.DataUtils.getBirthdays; - @SpringBootTest @Slf4j class DailyLoveApplicationTests {