FastJson的常用操作
FastJson的常用操作
2017-06-05
常用操作包括以下内容:
- 对象与(JsonObject或JsonArray)与String的互换
- String转换为(JsonObject或JsonArray)如何保持顺序
- Eval的使用
- 值为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的常用操作的更多相关文章
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- python 异常处理、文件常用操作
异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm
- byte数据的常用操作函数[转发]
/// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...
- Linux Shell数组常用操作详解
Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...
随机推荐
- 自定义cnblogs样式小结
写在前面: 博客模版(皮肤)很多, 这里选择了一套相对"干净"的模版, 这套模版本身已经很好了, 简约大方, 在此基础上进行改动一下. 1.页面背景图源自网络. 2.回到顶部i ...
- windows 7 提示缺少D3DCOMPILER_47.dll的正确解决方法
下载 KB4019990补丁 我上传一下吧. 点击下载
- numpy二分查找
a = np.array([1, 2, 2, 3]) print(np.searchsorted(a, 0)) # 0 print(np.searchsorted(a, 1)) # 0 print(n ...
- 【RS】CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering-CoupledCF:在推荐系统深度协作过滤中学习显式和隐式的用户物品耦合
[论文标题]CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Colla ...
- iOS 10 的一个重要更新-新的通知推送 API
iOS 10 最重要的变化可能就是通知 API 的重构了.本文用一个简单闹钟的例子介绍了 User Notification 的 API 变化和新功能. 简介 很久以前,开发者就可以在 iOS 里预约 ...
- 系统监控nagios–安装
安装:环境:CentOS6.0 32bit 1.先相关软件包 yum install httpd php gcc glibc glibc-common gd gd-devel make 2.创建用户信 ...
- 16条Android开发小经验
1. TextView中的getTextSize返回值是以像素(px)为单位的, 而setTextSize()是以sp为单位的. 所以如果直接用返回的值来设置会出错,解决办法是 用setTextSiz ...
- cron执行service
在Cron的环境下,是没有定义路径的,所以,service xxx start等等要使用绝对路径 => /sbin/service xxx start service的路径可以用whereis ...
- 基于key/value+Hadoop HDFS 设计的存储系统的shell命令接口
对于hadoop HDFS 中的全部命令进行解析(当中操作流程是自己的想法有不允许见欢迎大家指正) 接口名称 功能 操作流程 get 将文件拷贝到本地文件系统 . 假设指定了多个源文件,本地目的端必须 ...
- memcache 与 redis 为web app 带来的性能提升
memcache 与 redis 为web app 带来的性能提升 参考: 1. http://www.cnblogs.com/ToDoToTry/p/3513688.html