88 */
99package me .chanjar .weixin .cp .util .json ;
1010
11- import java .lang .reflect .Type ;
12-
13- import com .google .gson .JsonDeserializationContext ;
14- import com .google .gson .JsonDeserializer ;
15- import com .google .gson .JsonElement ;
16- import com .google .gson .JsonObject ;
17- import com .google .gson .JsonParseException ;
18- import com .google .gson .JsonSerializationContext ;
19- import com .google .gson .JsonSerializer ;
11+ import com .google .gson .*;
2012import me .chanjar .weixin .common .util .json .GsonHelper ;
2113import me .chanjar .weixin .cp .bean .WxCpDepart ;
2214
15+ import java .lang .reflect .Type ;
16+
2317/**
2418 * WxCpDepart的gson适配器.
2519 *
@@ -29,6 +23,7 @@ public class WxCpDepartGsonAdapter implements JsonSerializer<WxCpDepart>, JsonDe
2923 private static final String ID = "id" ;
3024 private static final String NAME = "name" ;
3125 private static final String EN_NAME = "name_en" ;
26+ private static final String DEPARTMENT_LEADER = "department_leader" ;
3227 private static final String PARENT_ID = "parentid" ;
3328 private static final String ORDER = "order" ;
3429
@@ -44,6 +39,13 @@ public JsonElement serialize(WxCpDepart group, Type typeOfSrc, JsonSerialization
4439 if (group .getEnName () != null ) {
4540 json .addProperty (EN_NAME , group .getEnName ());
4641 }
42+ if (group .getDepartmentLeader () != null ) {
43+ JsonArray jsonArray = new JsonArray ();
44+ for (String department : group .getDepartmentLeader ()) {
45+ jsonArray .add (new JsonPrimitive (department ));
46+ }
47+ json .add (DEPARTMENT_LEADER , jsonArray );
48+ }
4749 if (group .getParentId () != null ) {
4850 json .addProperty (PARENT_ID , group .getParentId ());
4951 }
@@ -67,6 +69,15 @@ public WxCpDepart deserialize(JsonElement json, Type typeOfT, JsonDeserializatio
6769 if (departJson .get (EN_NAME ) != null && !departJson .get (EN_NAME ).isJsonNull ()) {
6870 depart .setEnName (GsonHelper .getAsString (departJson .get (EN_NAME )));
6971 }
72+ if (departJson .getAsJsonArray (DEPARTMENT_LEADER ) != null && !departJson .get (DEPARTMENT_LEADER ).isJsonNull ()) {
73+ JsonArray jsonArray = departJson .getAsJsonArray (DEPARTMENT_LEADER );
74+ String [] departments = new String [jsonArray .size ()];
75+ int i = 0 ;
76+ for (JsonElement jsonElement : jsonArray ) {
77+ departments [i ++] = jsonElement .getAsString ();
78+ }
79+ depart .setDepartmentLeader (departments );
80+ }
7081 if (departJson .get (ORDER ) != null && !departJson .get (ORDER ).isJsonNull ()) {
7182 depart .setOrder (GsonHelper .getAsLong (departJson .get (ORDER )));
7283 }
0 commit comments