From b4c84fd68eb7a3cbab27dd157753b4ca823e7f8d Mon Sep 17 00:00:00 2001 From: zhfkt Date: Wed, 2 Jul 2025 23:03:52 +0800 Subject: [PATCH 1/3] Add null check for textJsonElement in WxCpUserGsonAdapter --- .../me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java index 0c32ba0060..8a28af8b6e 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java @@ -127,8 +127,10 @@ private void buildExtraAttrs(JsonObject o, WxCpUser user) { switch (type) { case 0: { - attr.setTextValue(GsonHelper.getString(attrJsonElement.getAsJsonObject().get("text").getAsJsonObject(), - "value")); + JsonElement textJsonElement = attrJsonElement.getAsJsonObject().get("text"); + if (textJsonElement != null) { + attr.setTextValue(GsonHelper.getString(textJsonElement.getAsJsonObject(), "value")); + } break; } case 1: { From d7bf10362815293b09a433520e2b824809cc22e0 Mon Sep 17 00:00:00 2001 From: zhfkt Date: Thu, 3 Jul 2025 10:54:05 +0800 Subject: [PATCH 2/3] Update weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java index 8a28af8b6e..6469dfd662 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java @@ -128,7 +128,7 @@ private void buildExtraAttrs(JsonObject o, WxCpUser user) { switch (type) { case 0: { JsonElement textJsonElement = attrJsonElement.getAsJsonObject().get("text"); - if (textJsonElement != null) { + if (textJsonElement != null && !textJsonElement.isJsonNull() && textJsonElement.isJsonObject()) { attr.setTextValue(GsonHelper.getString(textJsonElement.getAsJsonObject(), "value")); } break; From bb2499f94fa0f48bc81620e46753b6afaec8118d Mon Sep 17 00:00:00 2001 From: zhfkt Date: Fri, 4 Jul 2025 14:41:33 +0800 Subject: [PATCH 3/3] Update weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java index 6469dfd662..a477f1bbf9 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/util/json/WxCpUserGsonAdapter.java @@ -130,6 +130,8 @@ private void buildExtraAttrs(JsonObject o, WxCpUser user) { JsonElement textJsonElement = attrJsonElement.getAsJsonObject().get("text"); if (textJsonElement != null && !textJsonElement.isJsonNull() && textJsonElement.isJsonObject()) { attr.setTextValue(GsonHelper.getString(textJsonElement.getAsJsonObject(), "value")); + } else { + attr.setTextValue(null); // Clear or set a default value to avoid stale data } break; }