当前位置:   article > 正文

Json --- Fastjson工具_fastjson jsonserialize和serializeusing 有什么不同

fastjson jsonserialize和serializeusing 有什么不同

一、Fastjson简介

Fastjson是一个性能很好的Java语言实现的Json解析器和生成器,由来自阿里巴巴的工程师开发。具有极快的性能,超越任何其他的Java Json Parser。


特点:

  • 快速(比其他任何基于Java的解析器和生成器更快,包括Jackson)
  • 强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Data或enum)
  • 零依赖(没有依赖其他任何类库,除JDK)
  • 支持注解、支持全类型序列化


json工具对比信息:



jar包:

fastjson-1.2.9.jar


二、Fastjson简单示例

2.1 User实体类

  1. import java.io.Serializable;
  2. import java.util.Date;
  3. import com.alibaba.fastjson.annotation.JSONField;
  4. public class User implements Serializable{
  5. private int id;
  6. private String name;
  7. private int age;
  8. @JSONField(format="yyyy-MM-dd")
  9. private Date birthday;
  10. public int getId() {
  11. return id;
  12. }
  13. public void setId(int id) {
  14. this.id = id;
  15. }
  16. public String getName() {
  17. return name;
  18. }
  19. public void setName(String name) {
  20. this.name = name;
  21. }
  22. public int getAge() {
  23. return age;
  24. }
  25. public void setAge(int age) {
  26. this.age = age;
  27. }
  28. public Date getBirthday() {
  29. return birthday;
  30. }
  31. public void setBirthday(Date birthday) {
  32. this.birthday = birthday;
  33. }
  34. }


2.2 序列化Fastjson测试类

  1. import java.util.ArrayList;
  2. import java.util.Date;
  3. import java.util.List;
  4. import org.junit.Test;
  5. import com.alibaba.fastjson.JSONArray;
  6. import com.alibaba.fastjson.JSONObject;
  7. import com.alibaba.fastjson.serializer.PropertyFilter;
  8. import com.alibaba.fastjson.serializer.SerializeFilter;
  9. import com.struts2.fileupload.domain.User;
  10. public class FastjsonTest {
  11. // 将User对象转换成json
  12. @Test
  13. public void test1() {
  14. User user = new User();
  15. user.setAge(20);
  16. user.setBirthday(new Date());
  17. user.setId(1);
  18. user.setName("tom");
  19. //第一种,对象转换成json字符串
  20. //String json = JSONObject.toJSONString(user);
  21. //System.out.println(json);
  22. // 第二种,处理属性在json中是否生成
  23. SerializeFilter filter = new PropertyFilter() {
  24. @Override
  25. public boolean apply(Object arg0, String arg1, Object arg2) {
  26. // System.out.println(arg0); //要转换成json的对象
  27. // System.out.println(arg1); //属性名称
  28. // System.out.println(arg2); //属性值
  29. if (arg1.equals("id")) {
  30. return false; // 代表不生成在json串中
  31. }
  32. return true; // 代表生成在json串中
  33. }
  34. };
  35. // 转换成json
  36. String json = JSONObject.toJSONString(user, filter);
  37. System.out.println(json);
  38. // {"age":20,"birthday":1479455891302,"id":1,"name":"tom"}
  39. }
  40. // 将List<User>转换成json
  41. @Test
  42. public void test2() {
  43. User u1 = new User();
  44. u1.setAge(20);
  45. u1.setBirthday(new Date());
  46. u1.setId(1);
  47. u1.setName("tom");
  48. User u2 = new User();
  49. u2.setAge(20);
  50. u2.setBirthday(new Date());
  51. u2.setId(1);
  52. u2.setName("fox");
  53. List<User> users = new ArrayList<User>();
  54. users.add(u1);
  55. users.add(u2);
  56. String json = JSONArray.toJSONString(users);
  57. System.out.println(json);
  58. // [{"age":20,"birthday":1479456003742,"id":1,"name":"tom"},{"age":20,"birthday":1479456003742,"id":1,"name":"fox"}]
  59. }
  60. }



2.3 反序列化

(1) JavaBean

Cla
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/982435
推荐阅读
相关标签
  

闽ICP备14008679号