| @@ -1,50 +1,62 @@ | |||||
| package me.chanjar.weixin.mp.util.json; | 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.common.util.json.GsonHelper; | ||||
| import me.chanjar.weixin.mp.bean.membercard.MemberCardUserInfo; | import me.chanjar.weixin.mp.bean.membercard.MemberCardUserInfo; | ||||
| import me.chanjar.weixin.mp.bean.membercard.NameValues; | import me.chanjar.weixin.mp.bean.membercard.NameValues; | ||||
| import me.chanjar.weixin.mp.bean.membercard.WxMpMemberCardUserInfoResult; | 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 的转换适配器 | * Json to WxMpMemberCardUserInfoResult 的转换适配器 | ||||
| * | * | ||||
| * @author YuJian(mgcnrx11@gmail.com) | |||||
| * @author YuJian(mgcnrx11 @ gmail.com) | |||||
| * @version 2017/7/11 | * @version 2017/7/11 | ||||
| */ | */ | ||||
| public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer<WxMpMemberCardUserInfoResult> { | public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer<WxMpMemberCardUserInfoResult> { | ||||
| @Override | @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(); | WxMpMemberCardUserInfoResult result = new WxMpMemberCardUserInfoResult(); | ||||
| JsonObject jsonObject = jsonElement.getAsJsonObject(); | 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.setBonus(GsonHelper.getInteger(jsonObject, "bonus")); | ||||
| result.setBalance(GsonHelper.getDouble(jsonObject, "balance")); | 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")); | result.setHasActive(GsonHelper.getBoolean(jsonObject, "has_active")); | ||||
| JsonObject userInfoJsonObject = jsonObject.getAsJsonObject("user_info"); | JsonObject userInfoJsonObject = jsonObject.getAsJsonObject("user_info"); | ||||
| MemberCardUserInfo cardUserInfo = new MemberCardUserInfo(); | |||||
| if (userInfoJsonObject == null) { | |||||
| return result; | |||||
| } | |||||
| JsonArray commonFieldListObj = userInfoJsonObject.getAsJsonArray("common_field_list"); | JsonArray commonFieldListObj = userInfoJsonObject.getAsJsonArray("common_field_list"); | ||||
| NameValues[] commonFieldListValues = new NameValues[commonFieldListObj.size()]; | NameValues[] commonFieldListValues = new NameValues[commonFieldListObj.size()]; | ||||
| for (int i = 0; i < commonFieldListObj.size(); i++) { | for (int i = 0; i < commonFieldListObj.size(); i++) { | ||||
| JsonObject commonField = commonFieldListObj.get(i).getAsJsonObject(); | JsonObject commonField = commonFieldListObj.get(i).getAsJsonObject(); | ||||
| NameValues commonNameValues = new NameValues(); | 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; | commonFieldListValues[i] = commonNameValues; | ||||
| } | } | ||||
| MemberCardUserInfo cardUserInfo = new MemberCardUserInfo(); | |||||
| cardUserInfo.setCommonFieldList(commonFieldListValues); | cardUserInfo.setCommonFieldList(commonFieldListValues); | ||||
| JsonArray customFieldListObj = userInfoJsonObject.getAsJsonArray("custom_field_list"); | JsonArray customFieldListObj = userInfoJsonObject.getAsJsonArray("custom_field_list"); | ||||
| @@ -52,8 +64,8 @@ public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer | |||||
| for (int i = 0; i < customFieldListObj.size(); i++) { | for (int i = 0; i < customFieldListObj.size(); i++) { | ||||
| JsonObject customField = customFieldListObj.get(i).getAsJsonObject(); | JsonObject customField = customFieldListObj.get(i).getAsJsonObject(); | ||||
| NameValues customNameValues = new NameValues(); | 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"); | JsonArray valueListArray = customField.getAsJsonArray("value_list"); | ||||
| String[] valueList = new String[valueListArray.size()]; | String[] valueList = new String[valueListArray.size()]; | ||||
| @@ -63,6 +75,7 @@ public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer | |||||
| customNameValues.setValueList(valueList); | customNameValues.setValueList(valueList); | ||||
| customFieldListValues[i] = customNameValues; | customFieldListValues[i] = customNameValues; | ||||
| } | } | ||||
| cardUserInfo.setCustomFieldList(customFieldListValues); | cardUserInfo.setCustomFieldList(customFieldListValues); | ||||
| result.setUserInfo(cardUserInfo); | result.setUserInfo(cardUserInfo); | ||||