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);