FastJson--阿里开源的速度最快的Json和对象转换工具
示例
import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.Map; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; class User{
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
} class Group{
private int id;
private String name;
private List<User> list = new ArrayList<User>();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
} class Weibo {
private String id;
private String city; public Weibo(String id, String city) {
this.id = id;
this.city = city;
} public Weibo() {
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} public String getCity() {
return city;
} public void setCity(String city) {
this.city = city;
}
} public class JsonDemo {
public static void main(String[] args) {
json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
json2BeanM2(); //将Json文本数据转换为JavaBean数据!
json2JSONArrayM3(); //将json数据转化为JSONArray:
json2JavaBeanM4(); //将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(String text, Class<T> clazz);
bean2JsonM5(); //将JavaBean转换为Json格式的数据/Json文本 用户数据的传递:例如上传服务器
bean2JSONObjectM6();//将JavaBean转换为JSON对象
complexExampleM7(); //一个相对复杂的例子:
complex2JsonM8(); //一个复杂的Object到Json的Demo
complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!
} /**
* 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息
*/
private static void json2JsonObjectM1() {
//一个JsonObject文本数据
String s = "{\"name\":\"liuzhao\"}";
//将JsonObject数据转换为Json
JSONObject object = JSON.parseObject(s);
//利用键值对的方式获取到值
System.out.println(object.get("name"));
/**
* 打印:
* liuzhao
*/
} /**
* 将Json文本数据转换为JavaBean数据!
* 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null!
*/
private static void json2BeanM2() {
String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}";
//一个简单方便 的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!
Weibo weibo = JSON.parseObject(s, Weibo.class);//Weibo类在下边定义
System.out.println(weibo.getId());
System.out.println(weibo.getCity());
//打印的结果 0375
// 平顶山
} /**
* 将Map类型的数据转换为JsonString
*/
private static void complexMap2JsonM9() {
Group group = new Group();
group.setId(1);
group.setName("group"); User user1 = new User();
user1.setId(2);
user1.setName("user1"); User user2 = new User();
user2.setId(3);
user2.setName("user2");
group.getList().add(user1);
group.getList().add(user2); Map<Integer, Object> map = new HashMap<Integer,Object>();
map.put(1, "No.1");
map.put(2, "No.2");
map.put(3, group.getList()); String jsonString = JSON.toJSONString(map);
System.out.println(jsonString);
/**
* 输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]}
*/
} /**
* 由一个复杂的Object到Json的Demo
*/
private static void complex2JsonM8() {
Group group = new Group();
group.setId(1);
group.setName("group"); User user1 = new User();
user1.setId(2);
user1.setName("user1"); User user2 = new User();
user2.setId(3);
user2.setName("user2");
group.getList().add(user1);
group.getList().add(user2);
String jsonString = JSON.toJSONString(group);
System.out.println(jsonString);
/**
* 输出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"}
*/
} /**
* 一个相对复杂的例子:
* JSON文本数据:
* 首先是JSONObject,转换为JSONArray;
* 然后将JSONArray转换为JavaBean
*/
private static void complexExampleM7() {
String s = "{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}"
+ ",{id:\"110000\",\"city\":\"北#002京市\"},{id:\"110000\",\"city\":\"北#002京市\"},"
+ "{id:\"110000\",\"city\":\"#006北#005京市\"},"
+ "{id:\"110000\",\"city\":\"北#002京市\"},"
+ "{id:\"110000\",\"city\":\"北#002京市\"},{id:\"120000\",\"city\":\"天#009津市\"}]}"; JSONObject object = JSON.parseObject(s);
Object jsonArray = object.get("js");
System.out.println(jsonArray);
List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class);
for (Weibo weibo : list) {
System.out.println(weibo.getCity());
}
} /**
* 将JavaBean转换为JSON对象
*/
private static void bean2JSONObjectM6() {
Weibo weibo = new Weibo("0373", "洛阳");
JSONObject json = (JSONObject) JSON.toJSON(weibo);
System.out.println(json.get("id"));
/**
* 打印:
* 0373
*/
} /**
* 将JSON文本转换为JavaBean的集合;
* 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合
*/
private static void json2JavaBeanM4() {
String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
List<Weibo> list = JSON.parseArray(s, Weibo.class);
for (Weibo weibo : list) {
System.out.println(weibo.getCity());
}
/**
* 打印:
* 平顶山
* 南阳
*/
} /**
* 将json数据转化为JSONArray:
* 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合)
* 获取JSONArray中的数据转换为String类型需要在外边加"";
*/
private static void json2JSONArrayM3() {
String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";
//将JSON文本转换为JSONArray
JSONArray array = JSON.parseArray(s);
//这行必须写:必须加上+"";不然会报出类型强转异常!
String str = array.get(1)+"";
System.out.println(array.get(0));
JSONObject object = JSON.parseObject(str);
System.out.println(object.get("id"));
/**
* {"city":"平顶山","id":"0375"}
0377
*/
} /**
* 将JavaBean转换为Json格式的数据/Json文本
* 用户数据的传递:例如上传服务器
*/
private static void bean2JsonM5() {
Weibo weibo = new Weibo("123456", "上海");
String string = JSON.toJSONString(weibo);
System.out.println(string);
/**
* 打印:
* {"city":"上海","id":"123456"}
*/
} }
参考
http://www.oschina.net/code/snippet_228315_35122
FastJson--阿里开源的速度最快的Json和对象转换工具的更多相关文章
- 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具
转自:https://blog.csdn.net/gongpulin/article/details/52062532 这是关于FastJson的一个使用Demo,在Java环境下验证的 这是关于Fa ...
- FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具(转)
本文转自:http://blog.csdn.net/djun100/article/details/24237371 这是关于FastJson的一个使用Demo,在Java环境下验证的 class U ...
- FastJson--阿里开源的速度最快的Json和对象转换工具 https://www.cnblogs.com/kaituorensheng/p/8082631.html
import java.util.ArrayList;import java.util.List;import java.util.HashMap;import java.util.Map; impo ...
- 小码哥哥 FastJson--阿里巴巴公司开源的速度最快的Json和对象转换工具
转载地址:http://www.oschina.net/code/snippet_228315_35122?_t_t_t=0.4667952097048127 class User{ private ...
- 速度最快的Json序列框架Jil,入门动手实录
好吧,我又先要贴出跑分图了,出处 Jil是一个面向Json的序列化框架,在Nuget上可以下载到 支持数据类型 值得一提的是,Guid指定带破折号格式(44B2673B-B5CA-477B-A8EA- ...
- 如何找到fastjson.jar这个阿里开源的jar包
如何找到fastjson.jar这个阿里开源的jar包 转载 https://blog.csdn.net/AngelLover2017/article/details/84261261 Java编程中 ...
- Android解析Json速度最快的库:json-smart
场景描写叙述: 本文仅验证了在安卓环境下使用Json的Key作为反序列化条件的解析速度.结论是解析速度最快的不是阿里的fastjson,也不是Google的Gson,而是json-smart. And ...
- 为什么 Kafka 速度那么快?
来源:cnblogs.com/binyue/p/10308754.html Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafk ...
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...
随机推荐
- 学python3的书
<Python Cookbook>3rd Edition http://python3-cookbook.readthedocs.io/zh_CN/latest/copyright.htm ...
- 基于 nodejs 的 webSockt (socket.io)
基于 nodejs 的 webSockt (socket.io) 理解 本文的业务基础是在基于 nodejs 的 socket.io 的直播间聊天室(IM)应用来的. 项目中具体的 框架如下 expr ...
- 2719:陶陶摘苹果-poj
2719:陶陶摘苹果 总时间限制: 1000ms 内存限制: 65536kB 描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米 ...
- 51Nod 1001 数组中和等于K的数对 Set
给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...
- 51Nod 1108 距离之和最小 V2 1096 距离之和最小 中位数性质
1108 距离之和最小 V2基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注三维空间上有N个点, 求一个点使它到这N个点的曼哈顿距离之和最小,输出这个最小 ...
- php提供的对称加密算法
KEY 是之前定义的常量 Mcrypt::encrypt(); Mcrypt::decrypt(); defined('ROOT') or exit('Access Denied'); class M ...
- PHP基础 windows环境下安装Apache Mysql PHP
本篇文章主要是讲一下我自己安装wamp环境的一些步骤和见解,前方多图预警,慎入!!!!! PHP运行环境 : Linux下的三种安装方式:源码包安装.rpm包安装.集成环境安装(lnmp) wind ...
- python 3.6 urllib库实现天气爬取、邮件定时给妹子发送天气
#由于每天早上要和妹子说早安,于是做个定时任务,每天早上自动爬取天气,发送天气问好邮件##涉及模块:#(1)定时任务:windows的定时任务# 配置教程链接:http://b ...
- html Embed用法 页面播放视频
一句话概括所有问题.查资料说在页面播放视频都是一些插件 刚发现一个Html自带的标签 很吊的样子 <div > <embed src="${compla ...
- SALM入门笔记(1):特征点的匹配
SLAM 主要分为两个部分:前端和后端,前端也就是视觉里程计(VO),它根据相邻图像的信息粗略的估计出相机的运动,给后端提供较好的初始值.VO的实现方法可以根据是否需要提取特征分为两类:基于特征点的方 ...