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处理工具包,包括“序列化”和“反序列化”两部分,它具备 ...
随机推荐
- Sublime Text2格式化HMTL/CSS/JS插件HTML-CSS-JS Prettify
之前格式化用过JSFormat,今天在GitHub发现了一个比较好的插件HTML-CSS-JS Prettify,具体的地址https://github.com/victorporof/Sublime ...
- Android -- 触摸Area对焦区域(更新)
老早就想找关于不同点击不同地方的对焦,但是一直没有找到,现在项目又需要这个功能,又跑出来找找,最后还是找到啦~~关于对焦更多的是关于自动对焦. 废话不多说,直接来干货,主要是setFocusAreas ...
- Linux上如何查看Deb和RPM软件包的更新日志
导读 当一个程序或库打包成Deb或RPM软件包后会有一些元数据文件包含在其中,其中之一就是 changelog文件,它记录了软件包每次更新后发生了什么变化.因此,如果你想找出你安装或更新的软件包发生了 ...
- Mac下如何进行端口转发,方便一系列需要使用80端口进行的调试工作
上篇文章介绍到,可以在本地hosts文件中添加一条记录将微信公众号中的可信域名解析道本地127.0.0.1,但tomcat在Mac下非root权限80端口是启动不了的,所以我们可以利用pfctl端口转 ...
- Cognos业务洞察力:My First Business Insight
Cognos Dashboard Cognos Dashboard 可以展示具有重要影响力的信息,以监视.衡量和管理企业绩效. IBM Cognos Dashboard(仪表盘)使任何用户能够以支持其 ...
- IOS学习笔记44--ASIRequestHttp之BUG(一)
其实这也是无意间看到的,大家看看是不是这么回事 BUG:当下载线程数超过2时,就会影响到主线程响应用户请求的速度了 看ASIRequestHttp.m--requestFinished代码 - (vo ...
- ORACLE NVL 和 NVL2 函数的使用
NVL函数是一个空值转换函数,在SQL查询中主要用来处理null值.在不支持 null 值或 null 值无关紧要的情况下,可以使用 NVL( ) 来移去计算或操作中的 null 值. Oracle在 ...
- 算法笔记_174:历届试题 地宫取宝(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明 ...
- 修复eclipse build-helper-maven-plugin 异常
安装 help --> install new http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-buildhelper/0.15. ...
- 【转】Html.RenderPartial与 Html.RenderAction的区别
Html.RenderPartial与Html.RenderAction 这个两个方法都是用于把MVC用户控件嵌入到View中. Html.RenderPartial是直接将MVC用户控件嵌入到界面上 ...