FastJSON使用案例(fastjson-1.1.28.jar)
import java.util.List; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference; public class FastJSONHelper { /**
* 将java类型的对象转换为JSON格式的字符串
* @param object java类型的对象
* @return JSON格式的字符串
*/
public static <T> String serialize(T object) {
return JSON.toJSONString(object);
} /**
* 将JSON格式的字符串转换为java类型的对象或者java数组类型的对象,不包括java集合类型
* @param json JSON格式的字符串
* @param clz java类型或者java数组类型,不包括java集合类型
* @return java类型的对象或者java数组类型的对象,不包括java集合类型的对象
*/
public static <T> T deserialize(String json, Class<T> clz) {
return JSON.parseObject(json, clz);
} /**
* 将JSON格式的字符串转换为List<T>类型的对象
* @param json JSON格式的字符串
* @param clz 指定泛型集合里面的T类型
* @return List<T>类型的对象
*/
public static <T> List<T> deserializeList(String json, Class<T> clz) {
return JSON.parseArray(json, clz);
} /**
* 将JSON格式的字符串转换成任意Java类型的对象
* @param json JSON格式的字符串
* @param type 任意Java类型
* @return 任意Java类型的对象
*/
public static <T> T deserializeAny(String json, TypeReference<T> type) {
return JSON.parseObject(json, type);
} }
public class Person {
private int Age;
private String Name;
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
}
public class Program1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person person = new Person();
person.setAge(32);
person.setName("wangyunpeng");
String json = FastJSONHelper.serialize(person);
System.out.println(json);
person = FastJSONHelper.deserialize(json, Person.class);
System.out.println(String.format("Name:%s,Age:%s",person.getName(),person.getAge()));
}
}
import java.util.ArrayList;
public class Program2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Person> list = new ArrayList<Person>();
Person person1 = new Person();
person1.setAge(32);
person1.setName("wangyunpeng");
list.add(person1);
Person person2 = new Person();
person2.setAge(17);
person2.setName("shyx");
list.add(person2);
String json = FastJSONHelper.serialize(list);
System.out.println(json);
Person[] persons = FastJSONHelper.deserialize(json, Person[].class);
for (Person person : persons) {
System.out.println(String.format("Name:%s,Age:%s", person.getName(),person.getAge()));
}
}
}
import java.util.ArrayList;
import java.util.List; public class Program3 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Person> list = new ArrayList<Person>();
Person person1 = new Person();
person1.setAge(32);
person1.setName("wangyunpeng");
list.add(person1);
Person person2 = new Person();
person2.setAge(17);
person2.setName("shyx");
list.add(person2);
String json = FastJSONHelper.serialize(list);
System.out.println(json); List<Person> personList = FastJSONHelper.deserializeList(json, Person.class);
for (Person person : personList) {
System.out.println(String.format("Name:%s,Age:%s", person.getName(),person.getAge()));
}
} }
import java.util.ArrayList;
import java.util.List; public class Program4 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> list = new ArrayList<String>();
list.add("wyp");
list.add("shyx");
String json = FastJSONHelper.serialize(list);
System.out.println(json);
list = FastJSONHelper.deserializeList(json, String.class);
for (String string : list) {
System.out.println(string);
}
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; public class Program5 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("key1", "value1");
map.put("key2", "value2"); HashMap<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", 1);
map2.put("key2", 2); HashMap<String, Object> map3 = new HashMap<String, Object>();
Person person1 = new Person();
person1.setAge(32);
person1.setName("wangyunpeng");
map3.put("wyp", person1);
Person person2 = new Person();
person2.setAge(17);
person2.setName("shenyunxiao");
map3.put("shyx", person2); List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
list.add(map);
list.add(map2);
list.add(map3); String json = FastJSONHelper.serialize(list);
System.out.println(json); list = FastJSONHelper.deserializeAny(json,
new TypeReference<List<HashMap<String, Object>>>() {
});
for (HashMap<String, Object> item : list) {
for (Map.Entry<String, Object> entry : item.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof JSONObject) {
JSONObject jObj = (JSONObject) value;
String json2 = FastJSONHelper.serialize(jObj);
Person other = FastJSONHelper.deserialize(json2, Person.class);
System.out.println(String.format(
"Key:%s,Value:[Name:%s,Age:%s]", key,
other.getName(), other.getAge()));
} else {
System.out.println(String.format("Key:%s,Value:%s", key,
value));
}
}
} } }
FastJSON使用案例(fastjson-1.1.28.jar)的更多相关文章
- 【fastJSON】利用fastJSON处理循环引用的问题
下载fastJSON jar com.alibaba.fastjson 第一种:[写死的] 将需要序列化的字段传递进去,得到结果 //需要序列化的实体+字段 SimplePropertyPreFi ...
- 【FastJSON】解决FastJson中“$ref 循环引用”的问题
0.开发环境 SSH,EasyUI,MySQL 1.需求要求: (1)首先获取所有的贷款订单数据,即List <LoanOrder>. (2)然后从单个贷款订单实体LoanOrder去访问 ...
- 零基础学习java------29---------网络日志数据session案例,runtime(导出jar程序)
一. 网络日志数据session案例 部分数据 数据中的字段分别为: 访客ip地址,访客访问时间,访客请求的url及协议,网站响应码,网站返回数据量,访客的referral url,访客的客户端操作系 ...
- 04-SSH综合案例:环境搭建之jar包引入
刚才已经把表关系的分析已经分析完了,现在呢就先不去创建这个表,写到哪儿的时候再去创建这个表. 1.4 SSH环境搭建: 1.4.1 第一步:创建一个web项目. 1.4.2 第二步:导入相应jar包. ...
- FastJson处理Map List 对象
Fastjson是一个Java语言编写的高性能功能完善的JSON库. Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发. 1.遵循http://json.org标准,为其官 ...
- Fastjson到了说再见的时候了
生命太短暂,不要去做一些根本没有人想要的东西.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习 ...
- fastjson 混淆注意事项
使用fastjson 注意事项,主要表现: 1.加了符号Annotation 的实体类,一使用就会奔溃 2.当有泛型属性时,一使用就奔溃 在调试的时候不会报错,当你要打包签名混淆包的时候,就会出现上述 ...
- Android总结之json解析(FastJson Gson 对比)
前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...
- Android 中的Json解析工具fastjson 、序列化、反序列化
Android中通常需要访问服务器,然而服务器返回的数据很多时候都是Json格式 1.fastjson简介 阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...
随机推荐
- 混沌数学之Kent模型
相关软件:混沌数学之离散点集图形DEMO 相关代码: // http://wenku.baidu.com/view/7c6f4a000740be1e650e9a75.html // 肯特映射 clas ...
- 数学图形之Kuen Surface
Kuen Surface应该又是一个以数学家名字命名的曲面.本文将展示几种Kuen Surface的生成算法和切图,其中有的是标准的,有的只是相似.使用自己定义语法的脚本代码生成数学图形.相关软件参见 ...
- 数学图形之罗马曲面(RomanSurface)
罗马曲面,像是一个被捏扁的正四面体. 本文将展示罗马曲面的生成算法和切图,使用自己定义语法的脚本代码生成数学图形.相关软件参见:数学图形可视化工具,该软件免费开源.QQ交流群: 367752815 维 ...
- Android中Intent的显示和隐式使用
Android应用程序中组件之间的通信都少不了Intent的使用,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件, ...
- 【右滑返回】滑动冲突 Scroller DecorView
基本思想 我们的滑动逻辑主要是利用View的scrollBy() 方法, scrollTo()方法和Scroller类来实现的 当手指拖动视图的时候,我们监听手指在屏幕上滑动的距离 利用View的sc ...
- js中replace的用法
replace方法的语法是:stringObj.replace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也 ...
- 修改一行SQL代码 性能提升了100倍
在PostgreSQL中修改了一行不明显的代码,把(ANY(ARRAY[...]) 改成 ANY(VALUES(...))),结果查询时间从20s变为0.2s.最初我们学习使用 EXPLAN ANAL ...
- 消息队列的使用场景(转载c)
作者:ScienJus链接:https://www.zhihu.com/question/34243607/answer/58314162来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- 上传app store 应用指南链接--2
http://www.docin.com/p-166876874.html http://jamesli.cn/blog/?p=955 http://www.adobe.com/devnet/flas ...
- JSTL 标签库 使用(web基础学习笔记十九)
标签库概要: 一.C标签库介绍 1.1.<c:> 核心标签库 JSTL 核心标签库(C标签)标签共有13个,功能上分为4类:1.表达式控制标签:out.set.remove.catch2 ...