Android 处理后台返回特殊类型的Json 数据 解决办法 -- Map集合的处理

本文介绍了如何处理后台返回的包含动态key的Json数据。在面对格式如'xy000009192: value'的字符串时,由于key不固定,常规JSON解析方法不适用。解决方法是通过手动解析将此类数据转换为Map集合,从而方便地进行数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在工作中有这样一个字符串 ;

{
    "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;
    }

   
}

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值