json

作者: 非凡coder | 来源:发表于2017-02-21 10:56 被阅读0次

    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);

    相关文章

      网友评论

          本文标题:json

          本文链接:https://www.haomeiwen.com/subject/mgiywttx.html