fastjson主要的使用入口
JSON类(和Gson类一样)
解析(即反序列化JSONObejct,JSONArray,javabean)和生成(JSON及序列化变成字符串就是把内存中对象数据读出来)
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成,用这些方法来操作就行,就是用
JSON这个类就类似一个工具类,他里面没有封装太多东西不存储东西主要就是提供方法ok(方法也就解析和生成类似gson,如下parseXXX或toJSONString()这些,就是下面方法, 如map的封装是jsonobject中会封装 任何对象都行,另外解析为具体的java类对象后面参数还是要指定class,和gson类似()
比gson多的一点是他可以转化成JSONObject和JSONArray来操作解析不需要转化为具体的类,两个作用如下,相对在某些方面更通用和方便
publicstaticfinalObject parse(String text);// 把JSON文本parse为JSONObject或者JSONArrayparse 解析成
publicstaticfinalJSONObject parseObject(String text);// 把JSON文本parse成JSONObject
publicstaticfinalJSONArray parseArray(String text);// 把JSON文本parse成JSONArray
publicstaticfinal T parseObject(String text, Class clazz);// 把JSON文本parse为JavaBean
publicstaticfinal List parseArray(String text, Class clazz);//把JSON文本parse成JavaBean集合
生成:
publicstaticfinalString toJSONString(Object object);// 将JavaBean序列化为JSON文本
publicstaticfinalString toJSONString(Object object,booleanprettyFormat);// 将JavaBean序列化为带格式的JSON文本
对象之间转化
publicstaticfinalObject toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
3、有关类库的一些说明
SerializeWriter:相当于StringBuffer
JSONArray:相当于List
JSONObject:相当于Map
这两个作用主要就是吧json解析后存储数据而不是直接解析为对应的类,然后可以使用这两个类来操作解析更加方便类似map,如原因: 如之前天才在属性中使用JSONObject也是比较好的,比较通用,能够吧sjon字符存诚任何jsonobject中来存储,ok,如上有的可以直接就直接解析为对应的类,有的不能这样,如多层的,那末就解析存储到jsonobject这种就行,然后用其这个对象类似map来获取对应的key对应的值一层层解析就行
https://my.oschina.net/sulliy/blog/499834两个类具体东西如下:
不定义任何类,直接通过JSONArray和JSONObject来访问。
JSONArray用来存放JSON数组。解析成功后,如果是Java内置对象,可以直接调用相应方法获取值,比如public Integer getInteger(int index)。如果不是内置对象,可以调用public JSONObject getJSONObject(int index)来读取对象。如果还是数组,可以调用public JSONArray getJSONArray(int index)。事实上,JSONArray就是一个List。
JSONObject用来存放非内置对象,组织形式是一个键值对。事实上,JSONObject是一个Map。解析成功后,如果是Java内置对象,可以直接调用相应方法获取值,比如ublic Integer getInteger(String key)。如果不是内置对象,可以调用public JSONObject getJSONObject(String key)来读取对象。如果还是数组,可以调用public JSONArray getJSONArray(String key)。
通过组合使用JSONArray和JSONObject,我们就可以访问任何反序列化出来的JSON对象,而不需要对象的类信息。
主要方法如上,另外注意一点,注意最终要封装到jsonobject或jsonarray中为最后一层而且为jsonobject才用上面如Integer getInteger(int index)String get(String key) 来获取值 最终一般都死获取到具体的基本类型对应的值
4、fastjson还有很多很高级的特性,比如支持注解、支持全类型序列化,这些都是很好的特性,功能强大,不在本次测试范围
Gson提供了fromJson()和toJson()两个直接用于解析和生成的方法,前者实现反序列化,后者实现了序列化。同时每个方法都提供了重载方法,我常用的总共有5个。
Gson.toJson(Object);
Gson.fromJson(Reader,Class);
Gson.fromJson(String,Class);
Gson.fromJson(Reader,Type);
Gson.fromJson(String,Type);