json字符串如下:
{"data":{"deparments":[{"selected":false,"value":"1","text":"123","group":null},{"selected":false,"value":"2","text":"456","group":null},{"selected":false,"value":"3","text":"心789","group":null},{"selected":false,"value":"4","text":"101","group":null},{"selected":false,"value":"5","text":"1234","group":null},{"selected":false,"value":"6","text":"12143","group":null},{"selected":false,"value":"7","text":"1243458","group":null},{"selected":false,"value":"8","text":"788890","group":null},{"selected":false,"value":"9","text":"456577","group":null},{"selected":false,"value":"10","text":"78799","group":null},{"selected":false,"value":"11","text":"456678","group":null},{"selected":false,"value":"12","text":"36578","group":null}],"userTitles":[{"selected":false,"value":"0","text":"798080","group":null},{"selected":false,"value":"1","text":"23456","group":null},{"selected":false,"value":"2","text":"6788","group":null},{"selected":false,"value":"3","text":"fd","group":null}]},"errorMsg":null,"status":"success"}
解析的时候需要先解析外层数据然后解析内存数据,但因为程序中用到这种解析方法比较多,所以一般会先写一个BaseEntity类来解析基础类,但是data数据的类型又是不定的,刚开始data类型定的是Object,但是在使用的过程中有时候会出现解析错误,但是如果每次都写一个BaseEntity又会很麻烦,具体什么原因会在有时候错有时候不错,我还不是太清楚,有大神知道的可以告诉我一下。这里直接直接po代码
public class BaseEntity<T> {
private String status ;
private String errorMsg ;
private T data ;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getErrorMsg() {
return errorMsg;
}
public void setErrorMsg(String errorMsg) {
this.errorMsg = errorMsg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
开始解析:
OkHttpUtils.get().url(url).build()
.execute(new StringCallback() {
@Override
public void onResponse(String response) {
Gson gson = new Gson();
BaseEntity<ListEntity> fromJson = gson.fromJson(response, new TypeToken<ListEntity>>(){}.getType());
if (fromJson.getStatus().equals("success")) {
DoctorTitleDepartmentEntity data = fromJson.getData();
userTitle = data.getUserTitles();
deparments = data.getDeparments();
}
}
@Override
public void onError(Request request, Exception e) {
Log.e("wkk", "error:" + e.getMessage());
}
});
实体类:
public class InfoEntity {
private String value;
private String text;
private String group;
private String selected;
public PersonInfoEntity(String value, String text, String group, String selected) {
super();
this.value = value;
this.text = text;
this.group = group;
this.selected = selected;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
public String getSelected() {
return selected;
}
public void setSelected(String selected) {
this.selected = selected;
}
}
public class ListEntity implements Serializable {
private List<InfoEntity> userTitles;
private List<InfoEntity> deparments;
public List<PersonInfoEntity> getUserTitles() {
return userTitles;
}
public void setUserTitles(List<PersonInfoEntity> userTitles) {
this.userTitles = userTitles;
}
public List<PersonInfoEntity> getDeparments() {
return deparments;
}
public void setDeparments(List<PersonInfoEntity> deparments) {
this.deparments = deparments;
}
}