fastjson使用示例
一、fastjson
一款Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省。
二、api 接口demo
①、复杂的Object 转为 json
JSON.toJSONString(Object o)
public class ContentData { private List<ContentRes> contents; public List<ContentRes> getContents() {
return contents;
} public void setContents(List<ContentRes> contents) {
this.contents = contents;
} }
public class ContentRes { private boolean success; private String msg; private Long tatal; private List<ContentDO> data; public boolean isSuccess() {
return success;
} public String getMsg() {
return msg;
} public Long getTatal() {
return tatal;
} public List<ContentDO> getData() {
return data;
} public void setSuccess(boolean success) {
this.success = success;
} public void setMsg(String msg) {
this.msg = msg;
} public void setTatal(Long tatal) {
this.tatal = tatal;
} public void setData(List<ContentDO> data) {
this.data = data;
} }
public class ContentDO { private String id; private String title; private String url; public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url;
} }
public class Client { public static void main(String[] args) {
String js = JSON.toJSONString(initContentData());
System.out.println(js); } static ContentData initContentData() {
ContentData c = new ContentData();
c.setContents(initContentRess());
return c;
} static ContentRes initContentRes() { ContentRes c = new ContentRes();
c.setData(initContentDOs());
c.setMsg("msg");
c.setSuccess(true);
c.setTatal(100L);
return c;
} static List<ContentRes> initContentRess() {
List<ContentRes> res = new ArrayList<ContentRes>();
res.add(initContentRes());
return res;
} static List<ContentDO> initContentDOs() {
List<ContentDO> res = new ArrayList<ContentDO>();
for (int i = 0; i < 3; i++) {
ContentDO c = new ContentDO();
c.setId("id" + i);
c.setTitle("title" + i);
c.setUrl("url" + i);
res.add(c);
}
return res;
}
}
结果 :
{
"contents": [
{
"data": [
{
"id": "id0",
"title": "title0",
"url": "url0"
},
{
"id": "id1",
"title": "title1",
"url": "url1"
},
{
"id": "id2",
"title": "title2",
"url": "url2"
}
],
"msg": "msg",
"success": true,
"tatal": 100
}
]
}
②、将json 数据转为object 对象
JSON.parseObject(String text, Class<T> clazz)
public static void main(String[] args) {
String js = JSON.toJSONString(initContentData());
System.out.println(js); ContentData obj = JSON.parseObject(js, ContentData.class);
System.out.println(obj); js = JSON.toJSONString(initContentData2());
System.out.println(js);
}
结果 :
三、近来项目,老是遇到一些细节,有必要在此提一下。
①、List 转为json 数据的格式。[...]
[
{},
{},
{}
]
demo,可以见上诉Object转为json数据
②、Array 转为json 数据的格式 。 同上
四、推荐JSON格式化的工具
http://qqe2.com/
http://www.bejson.com/
fastjson使用示例的更多相关文章
- Fastjson使用示例及常见问题(九)
一.介绍 1. 什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化 ...
- 使用FastJSON,将对象或数组和JSON串互转
Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...
- 全解史上最快的JOSN解析库 - alibaba Fastjson
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换 ...
- 使用二分查找判断某个数在某个区间中--如何判断某个IP地址所属的地区
一,问题描述 给定100万个区间对,假设这些区间对是互不重叠的,如何判断某个数属于哪个区间? 首先需要对区间的特性进行分析:区间是不是有序的?有序是指:后一个区间的起始位置要大于前一个区间的终点位置. ...
- Java实现POS打印机自定义无驱打印
Java实现POS打印机自定义无驱打印 热敏打印机使用越来越广泛,而安装驱动相当复杂,万幸的是,几乎所有的热敏打印机都支持ESC/P指令,参考网络上一些资料后,在此整理了一份自定义打印的方案 • 打印 ...
- json-smart 使用示例(推荐fastjson)
关于json库,请使用fastjson,这是我用过的最好用的json库! 地址:https://github.com/alibaba/fastjson ======================== ...
- 记录心得-FastJson分层解析demo示例
记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...
- fastjson使用TypeReference示例
package junit.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; imp ...
- FastJson中JSONString与各个对象的的转换关系及API示例
前言 JSON作为一种轻量级的数据交换格式,在我们日常的开发中使用十分广泛,就Java后端的开发工作中,JSON字符串与Java对象之间相互转换是常常遇到的操作. 虽然平时用到的挺多的,但是因为用于J ...
随机推荐
- windows下配置环境变量时,在cmd窗口执行配置的命令时无效的原因
一个原因肯定就是配置错误,这个就要自己仔细去检查了,如果确信配置正确,可能是你的cmd窗口在环境变量配置之前就打开的,在配置好环境变量之后,在cmd窗口执行命令是看不到效果的,可以关掉cmd窗口再重新 ...
- 高难度(1)什么是AR
在介绍增强现实(AR)之前,需要先说说虚拟现实(VR) 虚拟现实是从英文Virtual Reality 一词翻译过来的,简称VR.VR 技术是采用以计算机技术为核心的技术,生成逼真的视.听.触觉等一体 ...
- 基于Android Studio搭建hello world工程
基于Android Studio搭建hello world工程 版本:ANDROID STUDIO V0.4.6 This download includes: · Android St ...
- Return Negative
Return Negative In this simple assignment you are given a number and have to make it negative. But m ...
- 谈谈javascript插件的写法
插件顾名思义就是能在一个页面多处使用, 各自按自己的参数配置运行, 并且相互不会冲突. 会写javascript插件是进阶js高级的必经之路, 也是自己所学知识的一个典型的综合运用. 如果你还没头绪, ...
- shell脚本编写笔记
包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...
- Swift不可变数组
Objective-C编写了2个不同的类来区分不可变数组(NSArray)和可变数组(NSMutableArray): Swift通过使用常量和变量来区分不可变数组和可变数组. 只要将数组定义为常量, ...
- android中GridView关于间距的属性值介绍
android:columnWidth 设置列的宽度.关联的方法为:setColumnWidth(int) stretchMode属性值的作用是设置GridView中的条目以什么缩放模式去填充空间 ...
- HDU2859 Phalanx 简单DP
dp[i][j]代表以s[i][j]字符为右上角的最大对称方阵的尺寸 最左边那一列都为1,然后按列更新,代码实现比较简单,感觉有点卡时间,如果对称度很好,时间应该比较高,我只会这种了 #include ...
- 《Python基础教程(第二版)》学习笔记 -> 第五章 条件、循环 和 其他语句
条件和条件语句 下面的值在作为布尔表达式的时候,会被解释器看作假(False):False None 0 "" () [] {} 条件执行和if语句 ...