JSON之FastJson
FastJson是什么?
从网上查到---
官网地址:http://code.alibabatech.com/wiki/display/FastJSON/Overview(已关闭)
FastJSOn是阿里巴巴开源的JSON处理工具,包括“序列化”和“反序列化”两部分,它具备如下特征:
- 速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson。
- 功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省。
- 无依赖,能够直接运行在Java SE 5.0以上版本
- 支持Android。
- 开源 (Apache 2.0)
既然速度快,当然要体验一下。更何况是国产货,当然要支持了。测试一下,以后在项目里使用...
package test;
import java.io.Serializable;
/**
* <一句话功能简述>
* @author aliger Email:liqimo#gmail.com
* @version [V1.00, 2014-8-16]
* @see [相关类/方法]
* @since V1.00
*/
public class UserInfo implements Serializable{
private String name;
private int age;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
}
Main:
package test;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.SerializerFeature;
/**
* <一句话功能简述>
*
* @author aliger Email:liqimo#gmail.com
* @version [V1.00, 2014-8-16]
* @see [相关类/方法]
* @since V1.00
*/
public class TestOne
{
public static FastJsonUtils ff; //public static void main(String[] args){
public static void test1(){
UserInfo info=new UserInfo();
info.setName("zhangsan");
info.setAge(24);
//将对象转换为JSON字符串
//String str_json=JSON.toJSONString(info);
String str_json=ff.getJsonString(info);
System.out.println("JSON="+str_json);
}
public static void test2() { HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", "zhangsan");
map.put("age", 24);
map.put("sex", "男");
//map集合
HashMap<String, Object> temp = new HashMap<String, Object>();
temp.put("name", "xiaohong");
temp.put("age", "23");
map.put("girlInfo", temp);
//list集合
List<String> list = new ArrayList<String>();
list.add("爬山");
list.add("骑车");
list.add("旅游");
map.put("hobby", list);
/*JSON 序列化,默认序列化出的JSON字符串中键值对是使用双引号,如果需要单引号的JSON字符串, [eg:String jsonString = JSON.toJSONString(map, SerializerFeature.UseSingleQuotes);]
*fastjson序列化时可以选择的SerializerFeature有十几个属性,你可以按照自己的需要去选择使用。
*/
String jsonString = JSON.toJSONString(map);
System.out.println("JSON===" + jsonString);
}
public static void test3(){
String json="{\"name\":\"chenggang\",\"age\":24}";
//反序列化
UserInfo userInfo=JSON.parseObject(json,UserInfo.class);
System.out.println("name:"+userInfo.getName()+", age:"+userInfo.getAge());
}
/**泛型的反序列化*/
public static void test4(){
String json="{\"user\":{\"name\":\"zhangsan\",\"age\":25}}";
Map<String, UserInfo> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfo>>(){});
System.out.println(map.get("user"));
}
public static void test5(){
Date date=new Date();
//输出毫秒值
System.out.println(JSON.toJSONString(date));
//默认格式为yyyy-MM-dd HH:mm:ss
System.out.println(JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));
//根据自定义格式输出日期
System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));
}
public static void main(String[] args) {
test1();
test2();
test3();
test4();
test5();
}
}
out结果:
JSON={"age":24,"name":"zhangsan"}
JSON==={"age":24,"girlInfo":{"age":"23","name":"xiaohong"},"hobby":["爬山","骑车","旅游"],"sex":"男","username":"zhangsan"}
name:chenggang, age:24
test.UserInfo@30c221
1408190003876
"2014-08-16 19:53:23"
"2014-08-16"
JSON之FastJson的更多相关文章
- Json,Gson,FastJson解析笔记
Json,Gson,FastJson解析笔记 1.将JavaBean转换成Json对象: public static String CreatJsonFromObject(Object key,Obj ...
- 【Json】fastjson与jackson常用操作记录
本文只是记录fastjson.jackson一些常用的操作方法,没作比较,网上写比较的文章很多啦. 1.对象转Json串 // fastjson String objStr = JSON.toJSON ...
- 比较json和fastjson的put()
首先,分别运行下面两段json和fastjson的代码: import org.json.JSONException; import org.json.JSONObject; public class ...
- 不同Json工具对空串和NULL的序列号处理:net.sf.json 和 fastjson
目录 1.测试代码 2.测试结果: 3.总结: 4.注:Maven中引入net.sf.json的方式 net.sf.json 和 fastjson 对于空串和NULL的处理: 1.测试代码 packa ...
- Android原生json和fastjson的简单使用
android原生操作json数据 主要是两个类 JSONObject 操作对象 JONSArray操作json数组 对象转json //创建学生对象 Student student=new ...
- 阿里巴巴Json工具-Fastjson讲解
Fastjson是阿里巴巴公司开源的速度最快的Json和对象转换工具,一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一.2.功能qia ...
- Android进阶笔记17:3种JSON解析工具(org.json、fastjson、gson)
一. 目前解析json有三种工具:org.json(Java常用的解析),fastjson(阿里巴巴工程师开发的),Gson(Google官网出的),其中解析速度最快的是Gson. 3种json工具下 ...
- JSON 之FastJson解析
http://blog.sina.com.cn/s/blog_7ffb8dd501013qas.html 一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具 ...
- Android JSON,Gson,fastjson实现比较
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
- 高性能JSON工具-FastJson处理超大JSON文本
使用阿里开源类库FastJson,当需要处理超大JSON文本时,需要Stream API,在fastjson-1.1.32版本中开始提供Stream API.文档参考GitHub:https://gi ...
随机推荐
- jsp 行动标签
jsp行动标签 签.它影响JSP执行时的功能. 1.include动作标签 <jsp:include page="文件名称字"/> 或 <jsp:include ...
- [JavaScript权威指南 [笔记]
对象的比较均是引用的比较.(不可变的原始值和可变的对象引用)this返回调用这个方法的对象通过x!==x来判断x是否为NaNvar max = max_width || preferences.max ...
- 现代JVM内存管理方法的发展历程,GC的实现及相关设计概述(转)
JVM区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分: ...
- ubuntu文本界面乱码的中国解决方案
问题: 文本界面乱码中国 解决方式: 非常easy.安装fbterm就OK! 详细例如以下: 安装命令:sudo apt-get install fbterm xfonts-xqy 然后执行:sudo ...
- 接收终端Request.InputStream阅读
接收终端Request.InputStream阅读请求页面参数,最后字符串. byte[] byts = new byte[HttpContext.Current.Request.InputStrea ...
- ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...
- oracle_自动备份用户数据,删除N天前的旧数据(非rman,bat+vbs)
有时数据没有实时备份恢复那么高的安全性需求,但每天 ,或者定期备份表结构 和数据依旧是很有必要的,介绍一种方法 在归档和非归档模式均可使用的自动备份方法. 预期效果是备份用户下的数据含表结构,备份文件 ...
- 开源搜索引擎Iveely 0.8.0
开源搜索引擎Iveely 0.8.0 这是一篇博客,不是,这是一篇开源人的心酸和喜悦,没有人可以理解我们的心情,一路的辛酸一路的艰辛,不过还好,在大家的支持下,总算是终见天日,谢谢那些给予我们无私帮助 ...
- 做ACM该伤不起啊!!
開始搞ACM啊!! ! .! ! ! ..! 从此踏上了尼玛不归路啊! !! !!! !!.!!! 谁特么跟劳资讲算法是程序设计的核心啊..! ! ! . 尼玛除了面试题就没见过用算法的地方啊!!! ...
- Php设计模式(三):行为型模式part2
原文详见:http://www.ucai.cn/blogdetail/7023?mid=1&f=5 可以在线运行查看效果哦! <接上文> 5.中介者模式(Mediator) : 用 ...