如何处理解析Json中的key为中文或数字等变态数据

写在前面

这篇文章是介绍如何处理Json中一些key为中文或数字开头的奇葩数据,使用的工具是Google提供的Gson工具,采用的方法是编写Java bean类对应json数据中相应的对象及数组等。默认各位已掌握这些知识,关于gson的基本使用请自行百度。


Json变态数据案例

{
    "名称1": "这是个案例而已",
    "这是个demo": {
        "1e-3": 65.3,
        "1e-5": 76.5,
        "1e-4": 71.8
    }
}

问题分析

按照通用的gson通用的解析方案,我们首先要编写一个Java Bean实体类,实力类中变量名和Json中的key值对应,Gson便会为我们自动解析。
但是大家都知道,这是不可能的!因为这些是不符合Java变量的命名规范的,所以根本没办法设置一样,难道要我们用JsonObject自己一点点去解析,用过的都知道那有多难用……


解决方案

其实Gson还支持注解的方式,so,我们可以把这个难题交给注解去解决,原理就是设置一个注解告诉程序这个变量虽然不是原来那个名字,但是其实还是它本人!
于是乎Java Bean代码如下:

public class ObjectBean implements Serializable{

    @SerializedName("名称1")
    public String name1;

    @SerializedName("这是个demo")
    public Demo demo;

    public static class Demo implements Serializable{

        @SerializedName("1e-3")
        public float value3;

        @SerializedName("1e-4")
        public float value4;

        @SerializedName("1e-5")
        public float value5;

    }

}

写在后面

Gson 库Android Studio 自动导入

    compile 'com.google.code.gson:gson:2.5'
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值