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. UICollectionView Demo

    1. 利用系统自动布局UICollectionViewFlowLayout进行布局. ViewController1 #import "ViewController1.h" @in ...

  2. 【SqlServer】聚集索引与主键、非聚集索引

    目录结构: contents structure [-] 聚集索引和非聚集索引的区别 聚集索引和主键的区别 主键和(非)聚集索引的常规操作 聚集索引.非聚集索引在SqlServer.MySQL.Ora ...

  3. 【java】深入了解JAVA可变长度的参数

    到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类型都必须逐一匹配,而形参的数目是在定义方法时 ...

  4. mysql数据库优化 pt-query-digest使用

    mysql数据库优化 pt-query-digest使用 一.pt-query-digest工具简介 pt-query-digest是用于分析 mysql慢查询的一个工具,它可以分析binlog.Ge ...

  5. 【SDOI2014】【BZOJ3529】数表

    Description 有一张N×m的数表,其第i行第j列(1 < =i < =礼.1 < =j < =m)的数值为 能同一时候整除i和j的全部自然数之和.给定a,计算数表中不 ...

  6. cassandra运行出现了Unable to gossip with any seeds,cqlsh链接不上,提示connection refused处理办法

    cassandra运行出现了Unable to gossip with any seeds,cqlsh链接不上,提示connection refused处理办法 问题描述 当启动了cassandra之 ...

  7. wireshark的拆包与合并

    背景:分析较高并发情景下的通话质量不佳的原因,需要长期抓包. 一.自动打包 1. 指定以1MB的大小打包,这个必须在/var/tmp/目录下执行. tcpdump -i ens32 -vvvv -C ...

  8. Jmeter录制HTTPS

    Jmeter有录制功能,录制HTTPs需要增加一个证书配置,录制步骤如下: 1.打开jmeter,添加线程组.线程组右键,逻辑控制器>录制控制器 工作台 右键 非测试元件 >HTTP代理服 ...

  9. 使用 properties 配置文件装配 bean 的方式

    在spring中将bean 注册到spring 容器中常见的有三种方式(两类): 先说明配置文件内容:application.yml,有一段配置如下 persons: youtube: name: y ...

  10. 数据仓库和ETL建设

    这个是Ralph kimball ETL的书籍,其中第10章主要讲如何管理数据仓库团队,ETL团队是属于数据仓库团队的:第一章和第二章是概况性的介绍,强烈建议大家都看下1/2/10章,对于大家形成对数 ...