Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。
然后我们先写一个demo来用Gson将一个json转化为json对象:
输出:
这里定义的Person类
、
然后我们看看是怎么Gson通过反射转化为java对象的,主要是看Gson类的fromJson(Reader json, Type typeOfT)方法,将原来传进去的String类型的json封装到JsonReader里面,这个就是读取数据的处理,就不好好看了,具体操作是在fromJson里面。
然后我们看看对传进去的typeOfT做了什么处理,主要看一下getAdapter里面进行了怎么样的转化。
以下是com.google.gson.internal.ConstructorConstructor获取对象的构造方法。
其实更关心反射取到的字段,以下是获取类的变量字段,主要还是通过反射的Field[] fields = raw.getDeclaredFields()。
其实简单一点,我们可以写个类似的解析的方式: