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 教程

FastJson的常用操作的更多相关文章

  1. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  2. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  3. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  4. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  5. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  6. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  7. python 异常处理、文件常用操作

    异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm

  8. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  9. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

随机推荐

  1. C/C++函数指针(typedef简化定义)

    学习要点:        1,函数地址的一般定义和typedef简化定义;        2,函数地址的获取;        3,A函数地址作为B函数参数的传递;    函数存放在内存的代码区域内,它 ...

  2. ROS学习(八)—— 理解ROS服务和参数

    一.ROS 服务 服务(services)是节点之间通讯的另一种方式.服务允许节点发送请求(request) 并获得一个响应(response) 二.rosservice 1.用途 rosservic ...

  3. HDU 4301 Divide Chocolate (DP + 递推)

    Divide Chocolate Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. android dialog加载中动画效果

    //显示动画 dialog = new Dialog(context, R.style.loading); dialog.setContentView(R.layout.loadinglayout); ...

  5. 【MySQL】mysql在Windows下使用mysqldump命令备份数据库

    在cmd窗口中使用mysqldump命令首先需要配置环境变量 1,在计算机中找到MySQL的安装位置,找到MySQL Workbench,比如我的是C:\Program Files\MySQL\MyS ...

  6. 页面生命周期里面还有很东西,如PageHandlerFactory等等这些东东也够吃一壶的,发现每走到一个领域,发现要学的东西实在是太多太多啦,总感觉自己所学的东西只是沧海一粟,走过了这道坎,又是一片海洋,我只能呐喊:生命永不止息,学海无涯----够用就好。

    页面生命周期里面还有很东西,如PageHandlerFactory等等这些东东也够吃一壶的,发现每走到一个领域,发现要学的东西实在是太多太多啦,总感觉自己所学的东西只是沧海一粟,走过了这道坎,又是一片 ...

  7. MYSQL内存评估

    ### MySQL Memory Calculator Procedure ### http://kedar.nitty-witty.com/blog/calculte-mysql-memory-us ...

  8. centos 6&7 升级openssh

    1.查看现在的版本 # rpm -qa | grep openssh openssh-clients-6.6.1p1-22.el7.x86_64 openssh-server-6.6.1p1-22.e ...

  9. Linux伙伴算法

    Linux内存管理伙伴算法 伙伴算法 Linux内核内存管理的任务包括: 遵从CPU的MMU(Memory Management Unit)机制 合理.有效.快速地管理内存 实现内存保护机制 实现虚拟 ...

  10. XGB 调参基本方法

    - xgboost 基本方法和默认参数 - 实战经验中调参方法 - 基于实例具体分析 在训练过程中主要用到两个方法:xgboost.train()和xgboost.cv(). xgboost.trai ...