FastJson的常用操作

FastJson的常用操作

2017-06-05

常用操作包括以下内容:

  1. 对象与(JsonObject或JsonArray)与String的互换
  2. String转换为(JsonObject或JsonArray)如何保持顺序
  3. Eval的使用
  4. 值为null的(JsonObject或JsonArray)转换为String时如何保存

代码:

package Demo.Sample1;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONPath;
import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class Sample {

    public static void main(String[] args) {

        Group group = GenerateGroup();
        String ss="{\"id\":1.1,\"name\":\"admin\",\"users\":[{\"id\":2.2,\"name\":\"guest\"},{\"id\":3.3,\"name\":\"root\"}]}";
        Group groupWithNull=GenerateGroupWithNull();

        BasicObjectToStringCompare();
        JsonObjectToStringCompare(ss);
        NJsonObjectToStringCompare(group);
        JsonStringSequence(group, ss);
        JsonEval(ss,"$.users");
        DealWithNullToStringString(groupWithNull);
    }

    public static void BasicObjectToStringCompare()
    {
        System.out.println("---------- 基元类型 toString() toJSONString() 比较: ----------");
        System.out.println("ZifuChuan");
        System.out.println(JSON.toJSONString("ZifuChuan"));
        System.out.println(true);
        System.out.println(JSON.toJSONString(true));
        System.out.println(1.1);
        System.out.println(JSON.toJSONString(1.1));
    }

    public static String NJsonObjectToStringCompare(Group group) {
        String jsonString = JSON.toJSONString(group);
        System.out.println("---------- 非JsonObject toString() toJSONString() 比较: ----------");
        System.out.println(group.toString());
        System.out.println(JSON.toJSONString(group));
        return jsonString;
    }

    public static String JsonObjectToStringCompare(String ss) {
        Object o=JSON.parse(ss,Feature.OrderedField);
        System.out.println("---------- JsonObject toString() toJSONString() 比较: ----------");
        System.out.println(o.toString());
        System.out.println(JSON.toJSONString(o));
        return ss;
    }

    public static void JsonStringSequence(Group group, String jsonString) {
        System.out.println("---------- 是否有序: ----------");
        Object o=JSON.parse(jsonString);
        System.out.println(o.toString());;

        Object o1=JSON.parse(jsonString,Feature.OrderedField);
        System.out.println(o1.toString());

        Object o2 = JSON.toJSON(group);
        System.out.println(o2.toString());
    }

    public static void JsonEval(String ss,String jsonPath) {
        System.out.println("---------- Json Eval: ----------");
        Object o3=JSONPath.eval(JSON.parse(ss,Feature.OrderedField),jsonPath);
        System.out.println(o3.toString());
    }

    public static void DealWithNullToStringString(Group groupWithNull) {
        System.out.println("---------- JsonObject with null emlement: ----------");
        System.out.println(JSON.toJSONString(groupWithNull));
        System.out.println(JSON.toJSONString(groupWithNull,SerializerFeature.WriteMapNullValue));
    }

    private static Group GenerateGroup() {
        Group group = new Group();
        group.setId(1.1);
        group.setName("admin");

        User guestUser = new User();
        guestUser.setId(2.2);
        guestUser.setName("guest");

        User rootUser = new User();
        rootUser.setId(3.3);
        rootUser.setName("root");

        group.addUser(guestUser);
        group.addUser(rootUser);
        return group;
    }

    private static Group GenerateGroupWithNull() {
        Group group = new Group();
        group.setId(1.1);
        group.setName("");

        User guestUser1 = new User();
        guestUser1.setId(null);
        guestUser1.setName("guest");

        User guestUser2 = new User();
        guestUser2.setId(3.3);

        User guestUser3 = new User();        

        group.addUser(guestUser1);
        group.addUser(guestUser2);
        group.addUser(guestUser3);
        return group;
    }
}

结果:

---------- 基元类型 toString() toJSONString() 比较: ----------
ZifuChuan
"ZifuChuan"
true
true
1.1
1.1
---------- JsonObject toString() toJSONString() 比较: ----------
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
---------- 非JsonObject toString() toJSONString() 比较: ----------
Demo.Sample1.Group@23ab930d
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
---------- 是否有序: ----------
{"name":"admin","id":1.1,"users":[{"name":"guest","id":2.2},{"name":"root","id":3.3}]}
{"id":1.1,"name":"admin","users":[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]}
{"name":"admin","id":1.1,"users":[{"name":"guest","id":2.2},{"name":"root","id":3.3}]}
---------- Json Eval: ----------
[{"id":2.2,"name":"guest"},{"id":3.3,"name":"root"}]
---------- JsonObject with null emlement: ----------
{"id":1.1,"name":"","users":[{"name":"guest"},{"id":3.3},{}]}
{"id":1.1,"name":"","users":[{"id":null,"name":"guest"},{"id":3.3,"name":null},{"id":null,"name":null}]}

参考:

[1] Introducing JSON

[2] FastJson 教程

时间: 2024-11-13 06:58:25

FastJson的常用操作的相关文章

Python 字典的特点和常用操作

一.字典帮助文档 >>> dir(dict) ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt

postgresql的ALTER常用操作

postgresql版本:psql (9.3.4) 1.增加一列ALTER TABLE table_name ADD column_name datatype; 2.删除一列 ALTER TABLE table_name DROP column_name; 3.更改列的数据类型 ALTER TABLE table_name ALTER column_name TYPE datatype; 4.表的重命名 ALTER TABLE table_name RENAME TO new_name; 5.更

Mysql数据库常用操作

1.备份数据库 [[email protected] ~]# mysqldump -h 192.168.0.8 -uroot  -p'123456'  user >user.sql 2.查看mysql数据库字符集设置 mysql> show variables like 'character_set_%';+--------------------------+----------------------------+| Variable_name            | Value    

多路径软件常用操作(MPIO)

一:查看存储盘的路径 1. 查看MPIO的存储盘的路径 # lspath (适用于所有存储的MPIO路径查询) # mpio_get_config -Av (适用于DS3K/DS4K的MPIO路径查询) 2. 查看RDAC存储盘的路径 # fget_config -Av (适用于DS3K/DS4K的RDAC路径查询) 3.查看SDDPCM存储盘的路径 # pcmpath query device (适用于DS6K/DS8K和v7000的SDDPCM路径查询) 4. 查看当前操作系统自带的支持IB

Python学习笔记五:字符串常用操作,字典,三级菜单实例

字符串常用操作 7月19日,7月20日 ,7月22日,7月29日,8月29日,2月29日 首字母大写:a_str.capitalize() 统计字符串个数:a_str.count("x") 输出字符,不够的使用指定的字符补上,字符居中:a_str.center(50,"-") 判断字符串以什么结尾:a_str.endwith("xx") 将字符串中的tab转换为指定数目的空格:a_str.expandtabs(tabsize=30) 查找指定字符

jQuery的常用操作

梳理一下jQuery的常用操作 jQuery隐藏显示对象 id为test的元素的display修改成了"none",即隐藏了id为test的元素:$('#test').css('display','none') 或 $('#test').style.display="none" 我们经常用到的是切换一个元素的隐藏与现实,下面给出代码: var show = $('#test').css('display');//获取id为test的元素的display的值$('#t

MongoDB常用操作

1.MongoDB常用操作 1.1数据库的操作命令 1.创建数据库,使用命令 use 数据库名称 ,如 use sxf. *注意: 1.use 命令后跟的数据库名,如果存在就进入此数据库,如果不存在就创建,所以这种创建方式又叫隐式创建 2.使用命令use sxf创建数据库后,并没有真正生成对应的数据文件,如果此时退出,此数据库将被删除,只有在此数据库中创建集合后,才会真正生成数据文件 2. 删除当前数据库,使用命令 db.dropDatabase() 3.查看所有数据库,使用命令 show db

git bash 常用操作文件命令

git bash常用操作文件命令 在Windows下使用Git Bash,用的是Linux命令,常用几个文件操作命令如下: Windows命令 Linux 命令 意义 Windows命令 Linux 命令 意义 cd e:\xxx cd /e/xxx 切换到xxx目录 cd pwd 显示当前目录路径 dir ls 列出当前目录内容 copy nul xxx.txt touch xxx.txt 生成名为xxx.txt的空文件 del xxx.txt rm xxx.txt 删除xxx.txt文件 m

位运算常用操作总结位运算应用口诀清零取反要用与,某位置一可用或若要取反和交换,轻轻松松用异或移位运

来源:http://www.educity.cn/wenda/381487.html 位运算常用操作总结位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形.     2 " $amp;     3 "$amp;>amp;>quot;$右移:右边的位被挤掉.对于左边移出的空位,如果是正数则空位补0,若为负数,可能补0或补1,这取决于所用的计算机系统.     4 "