写在前面
这篇文章是介绍如何处理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'