11package me .chanjar .weixin .mp .util .json ;
22
3- import com .google .gson .*;
3+ import java .lang .reflect .Type ;
4+
5+ import com .google .gson .JsonArray ;
6+ import com .google .gson .JsonDeserializationContext ;
7+ import com .google .gson .JsonDeserializer ;
8+ import com .google .gson .JsonElement ;
9+ import com .google .gson .JsonObject ;
10+ import com .google .gson .JsonParseException ;
411import me .chanjar .weixin .common .util .json .GsonHelper ;
512import me .chanjar .weixin .mp .bean .membercard .MemberCardUserInfo ;
613import me .chanjar .weixin .mp .bean .membercard .NameValues ;
714import me .chanjar .weixin .mp .bean .membercard .WxMpMemberCardUserInfoResult ;
815
9- import java . lang . reflect . Type ;
16+ import static me . chanjar . weixin . common . util . json . GsonHelper . getString ;
1017
1118/**
1219 * Json to WxMpMemberCardUserInfoResult 的转换适配器
1320 *
14- * @author YuJian(mgcnrx11@ gmail.com)
21+ * @author YuJian(mgcnrx11 @ gmail.com)
1522 * @version 2017/7/11
1623 */
1724public class WxMpMemberCardUserInfoResultGsonAdapter implements JsonDeserializer <WxMpMemberCardUserInfoResult > {
1825
1926 @ Override
20- public WxMpMemberCardUserInfoResult deserialize (JsonElement jsonElement , Type type , JsonDeserializationContext jsonDeserializationContext ) throws JsonParseException {
27+ public WxMpMemberCardUserInfoResult deserialize (JsonElement jsonElement , Type type , JsonDeserializationContext context )
28+ throws JsonParseException {
2129 WxMpMemberCardUserInfoResult result = new WxMpMemberCardUserInfoResult ();
2230
2331 JsonObject jsonObject = jsonElement .getAsJsonObject ();
2432
25- result .setOpenId (GsonHelper . getString (jsonObject , "openid" ));
26- result .setErrorCode (GsonHelper . getString (jsonObject , "errcode" ));
27- result .setErrorMsg (GsonHelper . getString (jsonObject , "errmsg" ));
28- result .setNickname (GsonHelper . getString (jsonObject , "nickname" ));
29- result .setMembershipNumber (GsonHelper . getString (jsonObject , "membership_number" ));
33+ result .setOpenId (getString (jsonObject , "openid" ));
34+ result .setErrorCode (getString (jsonObject , "errcode" ));
35+ result .setErrorMsg (getString (jsonObject , "errmsg" ));
36+ result .setNickname (getString (jsonObject , "nickname" ));
37+ result .setMembershipNumber (getString (jsonObject , "membership_number" ));
3038 result .setBonus (GsonHelper .getInteger (jsonObject , "bonus" ));
3139 result .setBalance (GsonHelper .getDouble (jsonObject , "balance" ));
32- result .setSex (GsonHelper . getString (jsonObject , "sex" ));
33- result .setUserCardStatus (GsonHelper . getString (jsonObject , "user_card_status" ));
40+ result .setSex (getString (jsonObject , "sex" ));
41+ result .setUserCardStatus (getString (jsonObject , "user_card_status" ));
3442 result .setHasActive (GsonHelper .getBoolean (jsonObject , "has_active" ));
3543
3644 JsonObject userInfoJsonObject = jsonObject .getAsJsonObject ("user_info" );
37- MemberCardUserInfo cardUserInfo = new MemberCardUserInfo ();
45+ if (userInfoJsonObject == null ) {
46+ return result ;
47+ }
3848
3949 JsonArray commonFieldListObj = userInfoJsonObject .getAsJsonArray ("common_field_list" );
4050 NameValues [] commonFieldListValues = new NameValues [commonFieldListObj .size ()];
4151 for (int i = 0 ; i < commonFieldListObj .size (); i ++) {
4252 JsonObject commonField = commonFieldListObj .get (i ).getAsJsonObject ();
4353 NameValues commonNameValues = new NameValues ();
44- commonNameValues .setName (GsonHelper . getString (commonField , "name" ));
45- commonNameValues .setValue (GsonHelper . getString (commonField , "value" ));
54+ commonNameValues .setName (getString (commonField , "name" ));
55+ commonNameValues .setValue (getString (commonField , "value" ));
4656 commonFieldListValues [i ] = commonNameValues ;
4757 }
58+
59+ MemberCardUserInfo cardUserInfo = new MemberCardUserInfo ();
4860 cardUserInfo .setCommonFieldList (commonFieldListValues );
4961
5062 JsonArray customFieldListObj = userInfoJsonObject .getAsJsonArray ("custom_field_list" );
5163 NameValues [] customFieldListValues = new NameValues [customFieldListObj .size ()];
5264 for (int i = 0 ; i < customFieldListObj .size (); i ++) {
5365 JsonObject customField = customFieldListObj .get (i ).getAsJsonObject ();
5466 NameValues customNameValues = new NameValues ();
55- customNameValues .setName (GsonHelper . getString (customField , "name" ));
56- customNameValues .setValue (GsonHelper . getString (customField , "value" ));
67+ customNameValues .setName (getString (customField , "name" ));
68+ customNameValues .setValue (getString (customField , "value" ));
5769
5870 JsonArray valueListArray = customField .getAsJsonArray ("value_list" );
5971 String [] valueList = new String [valueListArray .size ()];
@@ -63,6 +75,7 @@ public WxMpMemberCardUserInfoResult deserialize(JsonElement jsonElement, Type ty
6375 customNameValues .setValueList (valueList );
6476 customFieldListValues [i ] = customNameValues ;
6577 }
78+
6679 cardUserInfo .setCustomFieldList (customFieldListValues );
6780
6881 result .setUserInfo (cardUserInfo );
0 commit comments