Android 解析不规范到的Json数据

198 篇文章 1 订阅

不规范的json数据如下:
[
     [
        {
            "1":"",
            "2":"",
            "orders_id":"1232",
            "code":"174302152841957859",
            "table_id":"302",
            "dish_id":"39",
            "part":"1",
            "statu":"2",
            "claim":"",
            "create_time":"2018-06-08 08:59:38",
            "garnish_id":"",
            "garnish_part":"",
            "label_id":"",
            "company_id":"174",
            "dish_claim":"",
            "type":"密码下单",
            "order_price":"1.00",
            "order_waiter":"扫码点餐",
            "types":"0",
            "print_status":"1",
            "remind":"0",
            "name":"松鼠鱼",
            "enname":"Sweat and sour carp",
            "frname":"请翻译",
            "price":"148900.00",
            "disprice":"1.00",
            "category_id":"309",
            "address":"",
            "totprice":"11153",
            "serviceprice":"0.00",
            "servicename":"",
            "teaprice":"-11153.00",
            "finaltotprice":"11153.00",
            "class":{
                "GST":"",
                "":""
            }
        }
    ]
,
     [
        {
            "orders_id":"1233",
            "code":"174302152841957859",
            "table_id":"302",
            "dish_id":"42",
            "part":"1",
            "statu":"2",
            "claim":"",
            "create_time":"2018-06-08 08:59:38",
            "garnish_id":"",
            "garnish_part":"",
            "label_id":"",
            "company_id":"174",
            "dish_claim":"",
            "type":"密码下单",
            "order_price":"1.00",
            "order_waiter":"扫码点餐",
            "types":"0",
            "print_status":"1",
            "remind":"0",
            "name":"Braised Intestines in Brown Sauce",
            "enname":"Braised Intestines in Brown Sauce",
            "frname":"请翻译",
            "price":"0.01",
            "disprice":"1.00",
            "category_id":"30"
        }
    ]
,
     [
        {
            "orders_id":"1234",
            "code":"174302152841957859",
            "table_id":"302",
            "dish_id":"2353",
            "part":"1",
            "statu":"2",
            "claim":"",
            "create_time":"2018-06-08 08:59:38",
            "garnish_id":"",
            "garnish_part":"",
            "label_id":"",
            "company_id":"174",
            "dish_claim":"",
            "type":"密码下单",
            "order_price":"12.00",
            "order_waiter":"扫码点餐",
            "types":"0",
            "print_status":"1",
            "remind":"0",
            "name":"红茶",
            "enname":null,
            "frname":"0",
            "price":"12.00",
            "disprice":"12.00",
            "category_id":"30"
        }
    ]
,
     [
        {
            "orders_id":"1235",
            "code":"174302152841957859",
            "table_id":"302",
            "dish_id":"2615",
            "part":"1",
            "statu":"2",
            "claim":"",
            "create_time":"2018-06-08 08:59:38",
            "garnish_id":"",
            "garnish_part":"",
            "label_id":"",
            "company_id":"174",
            "dish_claim":"",
            "type":"密码下单",
            "order_price":"28.00",
            "order_waiter":"扫码点餐",
            "types":"0",
            "print_status":"1",
            "remind":"0",
            "name":"剁椒鱼头",
            "enname":null,
            "frname":"0",
            "price":"28.00",
            "disprice":"28.00",
            "category_id":"36"
        }
    ]
,
     [
        {
            "orders_id":"1236",
            "code":"174302152841957859",
            "table_id":"302",
            "dish_id":"4171",
            "part":"1",
            "statu":"2",
            "claim":"",
            "create_time":"2018-06-08 08:59:38",
            "garnish_id":"",
            "garnish_part":"",
            "label_id":"",
            "company_id":"174",
            "dish_claim":"",
            "type":"密码下单",
            "order_price":"11111.00",
            "order_waiter":"扫码点餐",
            "types":"0",
            "print_status":"1",
            "remind":"0",
            "name":"随便",
            "enname":null,
            "frname":"0",
            "price":"11111.00",
            "disprice":"11111.00",
            "category_id":"251"
        }
    ]

]
解析步骤:
1.在写bean类的时候,把以上数据直接粘贴在GsonFormat中,你会发现,无法点击OK,那么你把最外层的大括号去掉,然后再点OK,这个时候就可以了。

2.用Gson解析的时候,还是按照json数据一层层解析,(解析前的log日志是确认你是否返回了数据),新new个集合,把得到
   Log.e("requestNameData: ", string);
        Gson gson = new Gson();
        List<List<Games>> listGames = gson.fromJson(string, new TypeToken<List<List<Games>>>() {
        }.getType());

        if (listBean.size() <= 0) {
            listBean.addAll(listGames);
            adapter.notifyDataSetChanged();

        }

3.在listView或RecyclerView的适配器中适配数据。

4.由于数据格式是数组-> 数组->对象,所以不能按照常规适配数据
用for循环一次遍历数组,解析对象数据,然后新new一个集合,新建一个bean类,bean类是新new集合的泛型,把解析的数据添加到新new的集合中,用新new的集合给控件适配数据。

5.大功告成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值