From 761e88201c95412cd4cfe8005c7c8e5406c44348 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Fri, 25 Jan 2019 16:08:03 +0800 Subject: [PATCH] =?UTF-8?q?#928=20=E4=BF=AE=E5=A4=8D=E5=8D=A1=E5=88=B8?= =?UTF-8?q?=E6=8B=89=E5=8F=96=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=8A=A5=E7=A9=BA=E6=8C=87=E9=92=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...MpMemberCardUserInfoResultGsonAdapter.java | 45 ++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMemberCardUserInfoResultGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMemberCardUserInfoResultGsonAdapter.java index 3b14e0dc..82790a0b 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMemberCardUserInfoResultGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpMemberCardUserInfoResultGsonAdapter.java @@ -1,50 +1,62 @@ package me.chanjar.weixin.mp.util.json; -import com.google.gson.*; +import java.lang.reflect.Type; + +import com.google.gson.JsonArray; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import me.chanjar.weixin.common.util.json.GsonHelper; import me.chanjar.weixin.mp.bean.membercard.MemberCardUserInfo; import me.chanjar.weixin.mp.bean.membercard.NameValues; import me.chanjar.weixin.mp.bean.membercard.WxMpMemberCardUserInfoResult; -import java.lang.reflect.Type; +import static me.chanjar.weixin.common.util.json.GsonHelper.getString; /** * Json to WxMpMemberCardUserInfoResult 的转换适配器 * - * @author YuJian(mgcnrx11@gmail.com) + * @author YuJian(mgcnrx11 @ gmail.com) * @version 2017/7/11 */ public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer { @Override - public WxMpMemberCardUserInfoResult deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { + public WxMpMemberCardUserInfoResult deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext context) + throws JsonParseException { WxMpMemberCardUserInfoResult result = new WxMpMemberCardUserInfoResult(); JsonObject jsonObject = jsonElement.getAsJsonObject(); - result.setOpenId(GsonHelper.getString(jsonObject, "openid")); - result.setErrorCode(GsonHelper.getString(jsonObject, "errcode")); - result.setErrorMsg(GsonHelper.getString(jsonObject, "errmsg")); - result.setNickname(GsonHelper.getString(jsonObject, "nickname")); - result.setMembershipNumber(GsonHelper.getString(jsonObject, "membership_number")); + result.setOpenId(getString(jsonObject, "openid")); + result.setErrorCode(getString(jsonObject, "errcode")); + result.setErrorMsg(getString(jsonObject, "errmsg")); + result.setNickname(getString(jsonObject, "nickname")); + result.setMembershipNumber(getString(jsonObject, "membership_number")); result.setBonus(GsonHelper.getInteger(jsonObject, "bonus")); result.setBalance(GsonHelper.getDouble(jsonObject, "balance")); - result.setSex(GsonHelper.getString(jsonObject, "sex")); - result.setUserCardStatus(GsonHelper.getString(jsonObject, "user_card_status")); + result.setSex(getString(jsonObject, "sex")); + result.setUserCardStatus(getString(jsonObject, "user_card_status")); result.setHasActive(GsonHelper.getBoolean(jsonObject, "has_active")); JsonObject userInfoJsonObject = jsonObject.getAsJsonObject("user_info"); - MemberCardUserInfo cardUserInfo = new MemberCardUserInfo(); + if (userInfoJsonObject == null) { + return result; + } JsonArray commonFieldListObj = userInfoJsonObject.getAsJsonArray("common_field_list"); NameValues[] commonFieldListValues = new NameValues[commonFieldListObj.size()]; for (int i = 0; i < commonFieldListObj.size(); i++) { JsonObject commonField = commonFieldListObj.get(i).getAsJsonObject(); NameValues commonNameValues = new NameValues(); - commonNameValues.setName(GsonHelper.getString(commonField, "name")); - commonNameValues.setValue(GsonHelper.getString(commonField, "value")); + commonNameValues.setName(getString(commonField, "name")); + commonNameValues.setValue(getString(commonField, "value")); commonFieldListValues[i] = commonNameValues; } + + MemberCardUserInfo cardUserInfo = new MemberCardUserInfo(); cardUserInfo.setCommonFieldList(commonFieldListValues); JsonArray customFieldListObj = userInfoJsonObject.getAsJsonArray("custom_field_list"); @@ -52,8 +64,8 @@ public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer for (int i = 0; i < customFieldListObj.size(); i++) { JsonObject customField = customFieldListObj.get(i).getAsJsonObject(); NameValues customNameValues = new NameValues(); - customNameValues.setName(GsonHelper.getString(customField, "name")); - customNameValues.setValue(GsonHelper.getString(customField, "value")); + customNameValues.setName(getString(customField, "name")); + customNameValues.setValue(getString(customField, "value")); JsonArray valueListArray = customField.getAsJsonArray("value_list"); String[] valueList = new String[valueListArray.size()]; @@ -63,6 +75,7 @@ public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer customNameValues.setValueList(valueList); customFieldListValues[i] = customNameValues; } + cardUserInfo.setCustomFieldList(customFieldListValues); result.setUserInfo(cardUserInfo);