JSON 之 FastJson 的简单使用
2014-11-10 18:26
453 查看
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
个人觉得FastJson执行效率比较高,而且简单易用。
FastJson不依赖于第三方包, 直接可以运行在Java JDK1.5之上,FastJson完全支持http://json.org的标准,支持各种JDK类型,包括基本类型、JavaBean、Collection、Map、Enum、泛型等。还支持循环引用。
使用fastjson,只需要将 fastjson-1.1.36.jar 引入到工程中即可使用。
下面贴出简单使用源码:
1、javaBean对象(UserInfo.java)package cn.kpchen.fastjson.pojo; import java.io.Serializable; public class UserInfo implements Serializable { private int id; private String name; private String phone; private boolean isStudent; public UserInfo() { } public UserInfo(int id, String name, String phone, boolean isStudent) { this.id = id; this.name = name; this.phone = phone; this.isStudent = isStudent; } 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 String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public boolean getIsStudent() { return isStudent; } public void setIsStudent(boolean isStudent) { this.isStudent = isStudent; } @Override public String toString() { return "UserInfo [id=" + id + ", name=" + name + ", phone=" + phone + ", isStudent=" + isStudent + "]"; } }
2、FastJson的测试(FastJsonTest.java)
package cn.kpchen.fastjson.test; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.junit.Test; import cn.kpchen.fastjson.pojo.UserInfo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SerializerFeature; public class FastJsonTest { /** * 将对象转化为json字符串 * * @author: kpchen * @createTime: 2014年11月10日 下午6:20:39 * @history: void */ @Test public void testObjectToJson() { UserInfo userInfo = new UserInfo(1, "张三", "13568952346", true); // 将对象转换为JSON字符串 String str_json = JSON.toJSONString(userInfo); System.out.println("JSON=" + str_json); } /** * 将list集合转化为json字符串 * * @author: kpchen * @createTime: 2014年11月10日 下午6:20:19 * @history: void */ @Test public void testListToJson() { // list集合 List<UserInfo> lists = new ArrayList<UserInfo>(); for (int i = 0; i < 5; i++) { UserInfo userInfo = new UserInfo(1 + i, "张三" + i, "1356895234" + i, true); lists.add(userInfo); } String str_json = JSON.toJSONString(lists); System.out.println("JSON=" + str_json); } /** * 将简单的map对象转化为json字符串 * * @author: kpchen * @createTime: 2014年11月10日 下午6:19:54 * @history: void */ @Test public void testMapToJson1() { Map<String, Object> map = new HashMap<String, Object>(); UserInfo userInfo = new UserInfo(1, "张三", "13568952346", true); map.put("user", userInfo); String str_json = JSON.toJSONString(map); System.out.println(str_json); } /** * 将复杂的map对象转化为json字符串 * * @author: kpchen * @createTime: 2014年11月10日 下午6:19:24 * @history: void */ @Test public void testMapToJson2() { Map<String, Object> map = new HashMap<String, Object>(); map.put("username", "zhangsan"); map.put("age", 24); map.put("sex", "男"); 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); String str_json = JSON.toJSONString(map); System.out.println("JSON=" + str_json); } /** * 利用反序列化,将json字符串转化为对象 * * @author: kpchen * @createTime: 2014年11月10日 下午6:18:58 * @history: void */ @Test public void testJsonToObject() { String str_json = "{\"id\":1,\"isStudent\":true,\"name\":\"张三\",\"phone\":\"13568952346\"}"; // 反序列化 UserInfo userInfo = JSON.parseObject(str_json, UserInfo.class); System.out.println(userInfo.getId()); System.out.println(userInfo.getPhone()); } /** * Map的json字符串泛型的反序列化 * * @author: kpchen * @createTime: 2014年11月10日 下午5:08:32 * @history: void */ @Test public void testJsonToMap() { String json = "{\"user\":{\"id\":1,\"isStudent\":true,\"name\":\"张三\",\"phone\":\"13568952346\"}}"; Map<String, UserInfo> map = JSON.parseObject(json, new TypeReference<Map<String, UserInfo>>() { }); // System.out.println(map.get("user")); for (Entry<String, UserInfo> entry : map.entrySet()) { UserInfo userInfo = entry.getValue(); System.out.println(userInfo.toString()); } } /** * 格式化日期 * * @author: kpchen * @createTime: 2014年11月10日 下午6:18:37 * @history: void */ @Test public void testDateFormat() { 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)); } }
package test; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; class User { private String name; private int 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; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }; class UserGroup { private String name; private List<User> users = new ArrayList<User>(); public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } @Override public String toString() { return "UserGroup [name=" + name + ", users=" + users + "]"; } } class FastJsonTest { public static void main(String[] args) { // 构建用户geust User guestUser = new User(); guestUser.setName("guest"); guestUser.setAge(28); // 构建用户root User rootUser = new User(); rootUser.setName("root"); guestUser.setAge(35); // 构建用户组对象 UserGroup group = new UserGroup(); group.setName("admin"); group.getUsers().add(guestUser); group.getUsers().add(rootUser); // 用户组对象转JSON串 String jsonString = JSON.toJSONString(group); System.out.println("jsonString:" + jsonString); // JSON串转用户组对象 UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class); System.out.println("group2:" + group2); // 构建用户对象数组 User[] users = new User[2]; users[0] = guestUser; users[1] = rootUser; // 用户对象数组转JSON串 String jsonString2 = JSON.toJSONString(users); System.out.println("jsonString2:" + jsonString2); // JSON串转用户对象列表 List<User> users2 = JSON.parseArray(jsonString2, User.class); System.out.println("users2:" + users2); } }
jsonString:{"name":"admin","users":[{"age":35,"name":"guest"},{"age":0,"name":"root"}]} group2:UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]] jsonString2:[{"age":35,"name":"guest"},{"age":0,"name":"root"}] users2:[User [name=guest, age=35], User [name=root, age=0]]
相关文章推荐
- FastJson简单使用
- Volley及FastJson的简单使用
- FastJSON 简单使用
- SpringMVC整合FastJson及简单使用
- Fastjson的简单使用
- FastJson解析简单的使用
- 使用fastjson转换json的简单例子
- FastJson的简单使用
- FastJson的简单使用
- alibaba fastjson的简单使用!
- fastjson简单使用
- Fastjson 的简单使用<转>
- FastJson的简单使用
- fastjson的简单使用
- FastJson简单使用(转载)
- fastjson 的简单使用
- FastJson简单使用
- android fastjson的简单使用
- 使用com.alibaba.fastjson.JSONObject构造简单的JSON数据
- FastJSON 简单使用