一、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使用示例的更多相关文章

  1. Fastjson使用示例及常见问题(九)

    一.介绍 1. 什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化 ...

  2. 使用FastJSON,将对象或数组和JSON串互转

    Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...

  3. 全解史上最快的JOSN解析库 - alibaba Fastjson

    JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换 ...

  4. 使用二分查找判断某个数在某个区间中--如何判断某个IP地址所属的地区

    一,问题描述 给定100万个区间对,假设这些区间对是互不重叠的,如何判断某个数属于哪个区间? 首先需要对区间的特性进行分析:区间是不是有序的?有序是指:后一个区间的起始位置要大于前一个区间的终点位置. ...

  5. Java实现POS打印机自定义无驱打印

    Java实现POS打印机自定义无驱打印 热敏打印机使用越来越广泛,而安装驱动相当复杂,万幸的是,几乎所有的热敏打印机都支持ESC/P指令,参考网络上一些资料后,在此整理了一份自定义打印的方案 • 打印 ...

  6. json-smart 使用示例(推荐fastjson)

    关于json库,请使用fastjson,这是我用过的最好用的json库! 地址:https://github.com/alibaba/fastjson ======================== ...

  7. 记录心得-FastJson分层解析demo示例

    记录一下,平时用到,可速查!关键: // startArray(); 开始解析数组 // endArray(); 结束解析数组 // startObject(); 开始解析键值对 // endObje ...

  8. fastjson使用TypeReference示例

    package junit.test; import java.util.ArrayList; import java.util.HashMap; import java.util.List; imp ...

  9. FastJson中JSONString与各个对象的的转换关系及API示例

    前言 JSON作为一种轻量级的数据交换格式,在我们日常的开发中使用十分广泛,就Java后端的开发工作中,JSON字符串与Java对象之间相互转换是常常遇到的操作. 虽然平时用到的挺多的,但是因为用于J ...

随机推荐

  1. windows下配置环境变量时,在cmd窗口执行配置的命令时无效的原因

    一个原因肯定就是配置错误,这个就要自己仔细去检查了,如果确信配置正确,可能是你的cmd窗口在环境变量配置之前就打开的,在配置好环境变量之后,在cmd窗口执行命令是看不到效果的,可以关掉cmd窗口再重新 ...

  2. 高难度(1)什么是AR

    在介绍增强现实(AR)之前,需要先说说虚拟现实(VR) 虚拟现实是从英文Virtual Reality 一词翻译过来的,简称VR.VR 技术是采用以计算机技术为核心的技术,生成逼真的视.听.触觉等一体 ...

  3. 基于Android Studio搭建hello world工程

    基于Android Studio搭建hello world工程 版本:ANDROID STUDIO V0.4.6 This download includes: ·        Android St ...

  4. Return Negative

    Return Negative In this simple assignment you are given a number and have to make it negative. But m ...

  5. 谈谈javascript插件的写法

    插件顾名思义就是能在一个页面多处使用, 各自按自己的参数配置运行, 并且相互不会冲突. 会写javascript插件是进阶js高级的必经之路, 也是自己所学知识的一个典型的综合运用. 如果你还没头绪, ...

  6. shell脚本编写笔记

    包含转载内容,转载自http://wenku.baidu.com/link?url=jtCHxEYzgGve6P64U3JRQRgU6nhpGvqFLLpWu9I2Htq6hi9TGLudRFkk7r ...

  7. Swift不可变数组

    Objective-C编写了2个不同的类来区分不可变数组(NSArray)和可变数组(NSMutableArray): Swift通过使用常量和变量来区分不可变数组和可变数组. 只要将数组定义为常量, ...

  8. android中GridView关于间距的属性值介绍

    android:columnWidth  设置列的宽度.关联的方法为:setColumnWidth(int)  stretchMode属性值的作用是设置GridView中的条目以什么缩放模式去填充空间 ...

  9. HDU2859 Phalanx 简单DP

    dp[i][j]代表以s[i][j]字符为右上角的最大对称方阵的尺寸 最左边那一列都为1,然后按列更新,代码实现比较简单,感觉有点卡时间,如果对称度很好,时间应该比较高,我只会这种了 #include ...

  10. 《Python基础教程(第二版)》学习笔记 -> 第五章 条件、循环 和 其他语句

    条件和条件语句 下面的值在作为布尔表达式的时候,会被解释器看作假(False):False None    0    ""    ()    []    {} 条件执行和if语句 ...