FastJson的使用
介绍FastJson据说是目前为止最快的JSON库,好吧,他说是就是了。 FastJson 的Wiki在这里:https://github.com/alibaba/fastjson/wiki/ Quick_Start 在这里:https://github.com/alibaba/fastjson/wiki/Quit_Start_cn FastJson的API非常简单: String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parSEObject("{...}",VO.class); //反序列化
上代码接着,上菜,不,上代码:
package com.owen.fastjson.bean;
/** * POJO对象 * * @author Owen */
public class UserInfo {
private String name;
private int age;
/** * FastJSON要求:需要提供默认构造方法 */
public UserInfo() {}
public UserInfo(String name,int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.owen.fastjson.app;
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;
import com.owen.fastjson.bean.UserInfo;
/** * 测试类 * * @author Owen */
public class Main {
/** * 简单序列化 */
private static void simpleTest() {
UserInfo userInfo = new UserInfo("owen",24);
String jsonStr = JSON.toJSONString(userInfo);
System.out.println(jsonStr);
}
/** * 复杂序列化 */
public static void complexTest() {
Map<String,Object> map = new HashMap<String,Object>();
map.put("username","owen");
map.put("age",25);
map.put("sex","男");
Map<String,Object> temp = new HashMap<String,Object>();
temp.put("name","jack");
temp.put("age",18);
map.put("girinfo",temp);
List<String> list = new ArrayList<String>();
list.add("爬山");
list.add("电影");
list.add("旅游");
map.put("hobby",list);
String jsonStr = JSON.toJSONString(map);
System.out.println(jsonStr);
}
/** * 日期序列化 */
public static void DateTest() {
Date date = new Date();
// 默认输出
System.out.println("时间戳=" + JSON.toJSONString(date));
// 默认的日期格式
System.out.println("当前日期=" + JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat));
// 使用指定的日期格式
System.out.println("当前日期=" + JSON.toJSONStringWithDateFormat(date,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteDateUseDateFormat));
}
/** * 简单反序列化 */
public static void simpleDeserializeTest() {
String userInfoJSONStr = "{"name":"owen","age":24}";
UserInfo userInfo = JSON.parSEObject(userInfoJSONStr,UserInfo.class);
System.out.println("name = " + userInfo.getName() + ",age = " + userInfo.getAge());
}
/** * 泛型反序列化 */
public static void genericTypeDeserializeTest() {
String jsonStr = "{"user":{"name":"owen","age":24}";
Map<String,UserInfo> map = JSON.parSEObject(jsonStr,new TypeReference<Map<String,UserInfo>>() {});
System.out.println(map.get("user").getAge() + "n");
String jsonStr2 = "{"user":[{"name":"owen","age":24},{"name":"jack","age":18}]";
Map<String,List<UserInfo>> users = JSON.parSEObject(jsonStr2,List<UserInfo>>>() {});
for (UserInfo info : users.get("user")) {
System.out.println("name=" + info.getName());
System.out.println("age=" + info.getAge());
System.out.println("------------------");
}
}
/** * test */
public static void main(String[] args) {
genericTypeDeserializeTest();
}
}
import com.alibaba.fastjson.serializer.SimpleDateFormatSerializer;
文/程序猴(简书作者) 原文链接:http://www.jianshu.com/p/a04c428963a2 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 迭代C中列表中一对(或元组)的特定项
- Swift入门(十二)——利用Extension添加逆序输出字符串方法
- ruby-on-rails – Rails 3全错误消息格式
- oracle 12c r2 rac + ORA-28040
- FastJson、Jackson、Gson进行Java对象转换Json的细节处理
- ios – Xcode Localizable.string多个目标问题
- 在单个参数函数中传递带括号的两个值
- React Native -21.React Native Fetch网络请求
- MVC 中接受Flash的图片上传
- ruby-on-rails – 为什么我的Rails erb页面没有显示更改?