mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-23 22:11:40 +08:00
#928 修复卡券拉取用户信息接口报空指针问题
This commit is contained in:
parent
bdd72995a5
commit
761e88201c
@ -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<WxMpMemberCardUserInfoResult> {
|
||||
|
||||
@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);
|
||||
|
Loading…
Reference in New Issue
Block a user