最近在工作中有这样一个字符串 ;
{
"avatar_version": 5,
"history_list": [
{
"content": "134659",
"content_id": "5cbaac11e0e7d4247",
"content_type": "text",
"from_avatar": 5,
"from_is_room_admin": true,
"from_nickname": "木瓜",
"from_uid": "xy000007981",
"from_user_id": 7981,
"from_user_level": 10,
"time": "2019-04-20 13:20:17",
"to_uid": "all",
"type": "say"
}
],
"user_list": {
"xy000006035": {
"avatar_version": 10,
"ban_status": false,
"handicap_uid": "xy000006035",
"is_room_admin": true,
"level_name": "vip9",
"nickname": "nice最帅",
"user_id": 6035,
"user_level": 10
},
"xy000007981": {
"avatar_version": 5,
"ban_status": false,
"handicap_uid": "xy000007981",
"is_room_admin": true,
"level_name": "vip9",
"nickname": "木瓜",
"user_id": 7981,
"user_level": 10
},
"xy000009192": {
"avatar_version": 3,
"ban_status": false,
"handicap_uid": "xy000009192",
"is_room_admin": false,
"level_name": "vip1",
"nickname": "我爱nice",
"user_id": 9192,
"user_level": 2
}
}
}
对于这种字符串,如果按照正常的JSON解析的话,会非常不好,比如 这个 xy000009192 不是固定的,所有不能自动格式化
遇到这种后台不改的数据结构,如果处理了呢,怎样才能毫不费力的接住他,而且不让出问题呢?
解决办法 :特殊的类手动解析 : 把这种特殊的数据,转为Map集合即可解决!
public class TestDemo {
/**
* avatar_version : 5
* history_list : [{"content":"134659","content_id":"5cbaac11e0e7d4247","content_type":"text","from_avatar":5,"from_is_room_admin":true,"from_nickname":"木瓜","from_uid":"xy000007981","from_user_id":7981,"from_user_level":10,"time":"2019-04-20 13:20:17","to_uid":"all","type":"say"}]
* user_list : {"xy000006035":{"avatar_version":10,"ban_status":false,"handicap_uid":"xy000006035","is_room_admin":true,"level_name":"vip9","nickname":"nice最帅","user_id":6035,"user_level":10},"xy000007981":{"avatar_version":5,"ban_status":false,"handicap_uid":"xy000007981","is_room_admin":true,"level_name":"vip9","nickname":"木瓜","user_id":7981,"user_level":10},"xy000009192":{"avatar_version":3,"ban_status":false,"handicap_uid":"xy000009192","is_room_admin":false,"level_name":"vip1","nickname":"我爱nice","user_id":9192,"user_level":2}}
*/
private int avatar_version;
private LinkedHashMap<String, UserBean> user_list;
private java.util.List<HistoryListBean> history_list;
public int getAvatar_version() {
return avatar_version;
}
public void setAvatar_version(int avatar_version) {
this.avatar_version = avatar_version;
}
public LinkedHashMap<String, UserBean> getUser_list() {
return user_list;
}
public void setUser_list(LinkedHashMap<String, UserBean> user_list) {
this.user_list = user_list;
}
public List<HistoryListBean> getHistory_list() {
return history_list;
}
public void setHistory_list(List<HistoryListBean> history_list) {
this.history_list = history_list;
}
}