四、json封装成bean的json事例



安装 D:\gnt\src\weicha\weicha-android\app_builder\build\outputs\apk\weicha_2.6.2_[online]_debug.apk, logcat输入 RetrofitLog 即可抓取对应请求

1.请求: 巡防记录 https://biz.weicha110.com/biz/app/patrol/personalRankList 返回json如下

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
"messageCode": "1",
"message": "操作成功",
"data": {
"rows": [{
"photoUrl": null,
"patrolPic": "http://weicha-prd.oss-cn-hangzhou.aliyuncs.com/patrolPic/2018-06-20/ab8fce19-a14c-4a49-a5c0-e6765b9626fc1529488006609.jpg",
"singId": "08f87980-c052-4daa-bdc0-4e3abf309dcb",
"typeDesc": "交警执勤",
"whenLong": "0:0:8",
"averageSpeed": 0,
"beginTime": 1529487998000,
"endTime": 1529488006000,
"userName": "伟东-v1.5测试员",
"type": "3",
"userAct": "89208087",
"mileage": 0
}, {
"photoUrl": null,
"patrolPic": "http://weicha-prd.oss-cn-hangzhou.aliyuncs.com/patrolPic/2018-04-02/82c4350e-a1f9-47c7-90e3-91af0b1606751522636257004.jpg",
"singId": "5abb0476-9bf6-45e8-93e9-1689403cd805",
"typeDesc": "巡逻",
"whenLong": "0:16:33",
"averageSpeed": 0,
"beginTime": 1522635269000,
"endTime": 1522636262000,
"userName": "伟东-v1.5测试员",
"type": "0",
"userAct": "89208087",
"mileage": 0
}],
"total": 16
},
"success": true
}

该json被封装成了: Result<ListResult> 具体参考: PatrolPersonalService 类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
public  class Result<T> {

private boolean encryptModel;

private String message;

private T data;

private boolean success;

public boolean getEncryptModel(){
return this.encryptModel;
}

public void setEncryptModel(boolean encryptModel){
this.encryptModel = encryptModel;
}

public String getMessage(){
return this.message;
}

public void setMessage(String message){
this.message = message;
}

public T getData(){
return this.data;
}

public void setData(T data){
this.data = data;
}

public boolean getSuccess(){
return this.success;
}

public void setSuccess(boolean success){
this.success = success;
}
}

public class ListResult<T> {

public List<T> rows;

private int total;

public int getTotal() {
return total;
}

public void setTotal(int total) {
this.total = total;
}

public List<T> getRows() {
return this.rows;
}

public void setRows(List<T> rows) {
this.rows = rows;
}
}

public class PatrolData implements Parcelable {
private String singId;
private String photoUrl;// 用户头像
private String userAct;//用户账号
private String userName;
private String award;//奖励,比如:今日之星

public String getSingId() {
return singId;
}

public void setSingId(String singId) {
this.singId = singId;
}

public long getBeginTime() {
return beginTime;
}

public void setBeginTime(long beginTime) {
this.beginTime = beginTime;
}

private long beginTime; //开始时间

public void setEndTime(long endTime) {
this.endTime = endTime;
}

public long getEndTime() {
return endTime;
}

private long endTime; // 结束时间
private String finishedWorkTime;//完成巡逻时间,比如: 一分钟前完成,2小时前完成
//工作类型数值,根据后台返回值确定:0代表巡逻,1代表备勤,2-处警, 3-交警执勤, 4代表值班(也可以参考DataUtil.WorkType)
private String type;
private String typeDesc;//工作类型名称,比如:巡防,值班,备勤,交警巡逻等
private String workRangeTime;//工作时间范围,比如:3.19 12:02 - 3.19 18:00
private String patrolPic;//巡逻的图片
private String mileage;//巡逻距离,比如:7公里
private String averageSpeed;//速度
private String whenLong;//工作时长,比如: 45:51

/*private QueryState queryState = QueryState.ToDO;
private List<LatLng> pointList;*/

public PatrolData() {

}

public PatrolData(String userHeadPath, String userName, String award, String finishedWorkTime, String type, String workRangeTime,
String patrolPic, String mileage, String speed, String whenLong){
this.photoUrl = userHeadPath;
this.userName = userName;
this.award = award;
this.finishedWorkTime = finishedWorkTime;
this.type = type;
this.workRangeTime = workRangeTime;
this.patrolPic = patrolPic;
this.mileage = mileage;
this.averageSpeed = speed;
this.whenLong = whenLong;
}

public String getUserHeadPath() {
return photoUrl;
}

public void setUserHeadPath(String userHeadPath) {
this.photoUrl = userHeadPath;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getUserAct() {
return userAct;
}

public void setUserAct(String userAct) {
this.userAct = userAct;
}

public String getAward() {
return award;
}

public void setAward(String award) {
this.award = award;
}

public String getFinishedWorkTime() {
return finishedWorkTime;
}

public void setFinishedWorkTime(String finishedWorkTime) {
this.finishedWorkTime = finishedWorkTime;
}

public String getType() {
return type;
}

public void setType(String type) {
this.type = type;
}

public String getTypeDesc() {
return typeDesc;
}

public void setTypeDesc(String typeDesc) {
this.typeDesc = typeDesc;
}

public String getWorkRangeTime() {
return workRangeTime;
}

public void setWorkRangeTime(String workRangeTime) {
this.workRangeTime = workRangeTime;
}

public String getPatrolPic() {
return patrolPic;
}

public void setPatrolPic(String patrolPic) {
this.patrolPic = patrolPic;
}

public String getMileage() {
return mileage;
}

public void setMileage(String mileage) {
this.mileage = mileage;
}

public String getAverageSpeed() {
return averageSpeed;
}

public void setAverageSpeed(String speed) {
this.averageSpeed = speed;
}

public String getWhenLong() {
return whenLong;
}

public void setWhenLong(String whenLong) {
this.whenLong = whenLong;
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.singId);
dest.writeString(this.photoUrl);
dest.writeString(this.userAct);
dest.writeString(this.userName);
dest.writeString(this.award);
dest.writeLong(this.beginTime);
dest.writeLong(this.endTime);
dest.writeString(this.finishedWorkTime);
dest.writeString(this.type);
dest.writeString(this.typeDesc);
dest.writeString(this.workRangeTime);
dest.writeString(this.patrolPic);
dest.writeString(this.mileage);
dest.writeString(this.averageSpeed);
dest.writeString(this.whenLong);
}

protected PatrolData(Parcel in) {
this.singId = in.readString();
this.photoUrl = in.readString();
this.userAct = in.readString();
this.userName = in.readString();
this.award = in.readString();
this.beginTime = in.readLong();
this.endTime = in.readLong();
this.finishedWorkTime = in.readString();
this.type = in.readString();
this.typeDesc = in.readString();
this.workRangeTime = in.readString();
this.patrolPic = in.readString();
this.mileage = in.readString();
this.averageSpeed = in.readString();
this.whenLong = in.readString();
}

public static final Parcelable.Creator<PatrolData> CREATOR = new Parcelable.Creator<PatrolData>() {
@Override
public PatrolData createFromParcel(Parcel source) {
return new PatrolData(source);
}

@Override
public PatrolData[] newArray(int size) {
return new PatrolData[size];
}
};
}

2.请求: https://biz.weicha110.com/biz/app/patrol/pointRank 返回json如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"messageCode": "1",
"encryptModel": false,
"message": "",
"data": {
"all": [],
"one": {
"photoUrl": "",
"point": 0,
"rank": 0,
"userName": "伟东-v1.5测试员",
"useract": "89208087"
}
},
"success": true
}

该json请求被封装成 Result<PointRank_bean>, PointRank_bean代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public class PointRank_bean {
private OnePointRank_bean one; //个人
private List<OnePointRank_bean> all; //列表

public PointRank_bean(){
super();
}

public OnePointRank_bean getOne() {
return one;
}

public void setOne(OnePointRank_bean one) {
this.one = one;
}

public List<OnePointRank_bean> getAll() {
return all;
}

public void setAll(List<OnePointRank_bean> all) {
this.all = all;
}
}
其中引用了 OnePointRank_bean 类, 代码如下:
public class OnePointRank_bean {
private String useract; //账号
private String userName; //姓名
private int point; //积分
private int rank; //排名
private String photoUrl;
public OnePointRank_bean(){
super();
}


public String getUseract() {
return useract;
}

public void setUseract(String useract) {
this.useract = useract;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public int getPoint() {
return point;
}

public void setPoint(int point) {
this.point = point;
}

public int getRank() {
return rank;
}

public void setRank(int rank) {
this.rank = rank;
}

public String getPhotoUrl() {
return photoUrl;
}

public void setPhotoUrl(String photoUrl) {
this.photoUrl = photoUrl;
}
}

3.请求: 警力分布 https://biz.weicha110.com/biz/app/trajectory/qrygps 返回json如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{
"messageCode": "1",
"encryptModel": false,
"message": "",
"data": {
"rows": [{
"areaCode": "4507",
"createdDatetime": 1543486403841,
"lat": 22.265544,
"lng": 109.55523,
"signId": "",
"unitCode": "450722810000",
"unitName": "广西浦北县公安局江城派出所",
"userName": "苏子权",
"userPhone": "13977015618",
"useract": "631674",
"workType": "2"
}, {
"areaCode": "4507",
"createdDatetime": 1543486409584,
"lat": 21.956608,
"lng": 108.616731,
"signId": "",
"unitCode": "450702610000",
"unitName": "广西钦州市公安局南珠派出所",
"userName": "吕玉明",
"userPhone": "15907772653",
"useract": "630780",
"workType": "2"
}, {
"areaCode": "4507",
"createdDatetime": 1543485838853,
"lat": 21.731841,
"lng": 108.602291,
"signId": "",
"unitCode": "450704500000",
"unitName": "广西钦州市公安局钦州港派出所",
"userName": "盘龙",
"userPhone": "13517573372",
"useract": "630163",
"workType": "2"
}, {
"areaCode": "4507",
"createdDatetime": 1543486407436,
"lat": 22.221118,
"lng": 109.341599,
"signId": "",
"unitCode": "450722071300",
"unitName": "广西浦北县公安局交通管理大队张黄中队",
"userName": "陈春池",
"userPhone": "18177797325",
"useract": "631546",
"workType": "2"
}],
"total": 4
},
"success": true
}

被封装成了 Result<ListResult>, PoliceLocationBean代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
public class PoliceLocationBean {
// {
// "areaCode": "4507",
// "createdDatetime": 1497344940000,
// "lat": "21.973576",
// "lng": "108.63232",
// "signId": "44455667788991",
// "unitCode": "450700000000",
// "unitName": "广西钦州市公安局",
// "userName": "李钢119",
// "userPhone": "18719136149",
// "useract": "000013",
// "workType": "1"
// }
private String areaCode;
private String createdDatetime;
private double lat;
private double lng;
private String signId;
private String unitCode;
private String unitName;
private String userName;
private String userPhone;
private String useract;
private int workType;

public String getAreaCode() {
return areaCode;
}

public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}

public String getCreatedDatetime() {
return createdDatetime;
}

public void setCreatedDatetime(String createdDatetime) {
this.createdDatetime = createdDatetime;
}

public double getLat() {
return lat;
}

public void setLat(double lat) {
this.lat = lat;
}

public double getLng() {
return lng;
}

public void setLng(double lng) {
this.lng = lng;
}

public String getSignId() {
return signId;
}

public void setSignId(String signId) {
this.signId = signId;
}

public String getUnitCode() {
return unitCode;
}

public void setUnitCode(String unitCode) {
this.unitCode = unitCode;
}

public String getUnitName() {
return unitName;
}

public void setUnitName(String unitName) {
this.unitName = unitName;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getUserPhone() {
return userPhone;
}

public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}

public String getUseract() {
return useract;
}

public void setUseract(String useract) {
this.useract = useract;
}

public int getWorkType() {
return workType;
}

public void setWorkType(int workType) {
this.workType = workType;
}
}