From 8256c46db26925e4a4edf31bd3fc10fc23298d02 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Mon, 15 Jun 2020 20:30:38 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20#1619=20=E4=BC=81=E4=B8=9A=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E8=8E=B7=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BC=98=E5=8C=96=EF=BC=8C=E5=A4=84=E7=90=86?= =?UTF-8?q?type=E4=B8=BAnull=E6=83=85=E5=86=B5=E4=B8=8B=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4=E7=9A=84=E7=A9=BA=E6=8C=87=E9=92=88?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../me/chanjar/weixin/cp/bean/WxCpUser.java | 4 ++-- .../cp/util/json/WxCpUserGsonAdapter.java | 23 +++++++++++++++++-- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java index c44400a73..5a91fbf69 100644 --- a/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java +++ b/weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/WxCpUser.java @@ -89,7 +89,7 @@ public class WxCpUser implements Serializable { /** * 属性类型: 0-文本 1-网页 */ - private int type; + private Integer type; private String name; private String textValue; private String webUrl; @@ -104,7 +104,7 @@ public class WxCpUser implements Serializable { /** * 属性类型: 0-本文 1-网页 2-小程序. */ - private int type; + private Integer type; /** * 属性名称: 需要先确保在管理端有创建改属性,否则会忽略. */ 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 4ce0afda1..deaac491f 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 @@ -98,6 +98,10 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri .setName(GsonHelper.getString(attrJsonElement.getAsJsonObject(), "name")); user.getExtAttrs().add(attr); + if (type == null) { + continue; + } + switch (type) { case 0: { attr.setTextValue(GsonHelper.getString(attrJsonElement.getAsJsonObject().get("text").getAsJsonObject(), "value")); @@ -120,6 +124,10 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri final Integer type = GsonHelper.getInteger(element.getAsJsonObject(), "type"); final String name = GsonHelper.getString(element.getAsJsonObject(), "name"); + if (type == null) { + continue; + } + switch (type) { case 0: { user.getExternalAttrs() @@ -253,6 +261,12 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri for (WxCpUser.Attr attr : user.getExtAttrs()) { JsonObject attrJson = new JsonObject(); + attrsJsonArray.add(attrJson); + + if (attr.getType() == null) { + continue; + } + switch (attr.getType()) { case 0: { JsonObject text = new JsonObject(); @@ -269,7 +283,6 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri } default: //ignored } - attrsJsonArray.add(attrJson); } JsonObject attrsJson = new JsonObject(); attrsJson.add("attrs", attrsJsonArray); @@ -293,6 +306,13 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri JsonObject attrJson = new JsonObject(); attrJson.addProperty("type", attr.getType()); attrJson.addProperty("name", attr.getName()); + + attrsJsonArray.add(attrJson); + + if (attr.getType() == null) { + continue; + } + switch (attr.getType()) { case 0: { JsonObject text = new JsonObject(); @@ -317,7 +337,6 @@ public class WxCpUserGsonAdapter implements JsonDeserializer, JsonSeri } default://忽略 } - attrsJsonArray.add(attrJson); } attrsJson.add(EXTERNAL_ATTR, attrsJsonArray);