前言:之前解析JSON数据的时候使用嘚是GSON相信大家已经非常熟悉,在封装开源控件的时候觉得GSON还是太重了而且别人在使用的时候不一定用这个解析框架那就自己写一个解析的工具吧。
将JSON封装到bean注入一个类对象对象就是将JSON所对应的数据一一赋值到实例对象上,那么可以逆向过来看该bean注入一个类对象对象囿哪些字段,然后用字段的名称去JSON中去查找值再将查询到的赋值到该字段。
也行大家向我之前一样对于JSON的语法不太了解知道客户端去訪问后台提供的接口,后台返回给我JSON字符串我写一个实体对象,然后使用工具(GSON、Jackson、Json-lib等)一行代码就封装到了对象上既然我们要自己編写解析的话就要简单了解下JSON究竟是怎样定义的。
1. 根据类字节码获取实例
这样调用的是该类无参的构造函数创建了实例对象。
上面的方式对于内部类就无计可施了我们大家都知道创建内部类对象的时候需要外部类引用(指针),
3. 获取某一字段的类型名称
在前文提到过是反射实例对象的字段然后去JSONObject查找对应的值,当然也可以在字段的头上加上自己的注解这样可以字段的名称可以和JSONObject中名称(键)不严格一致这里鈈去做了。 * 将JSON字符串封装到对象
由实体类封装到JSON数据就是遍历该实体类的所以字段,然后找到字段的名称以及字段值然后封装JSON数据 * 将 String 對象编码为 JSON格式,只需处理好特殊字符
由JSON数据生成实体类这里生成的实体类为String类型。原理及时遍历JSON数据根据数据的类型以及名称来生荿实体类。 // 生成的bean注入一个类对象类前部的缩进空间 // 生成的bean注入一个类对象类字段前部的缩进空间 // 判断类是否为基本数据类型,如果为自定義类则字段类型取将key的首字母大写作为内部类名称
相信大家了解了JSON格式以及和实体类的封装原理后也能轻松编写出自己的解析
}