资讯专栏INFORMATION COLUMN

FastJson几种常用场景

Lionad-Morotar / 891人阅读

JavaBean
package com.daily.json;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.Date;

public class Student {

    @JSONField(name = "NAME", ordinal = 3)
    private String name;
    @JSONField(ordinal = 2)
    private int age;
    @JSONField(format = "yyyy-MM-dd HH:mm:ss", ordinal = 1)
    private Date birthDay;
    @JSONField(serialize = false)
    private String addr;

    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;
    }

    public Date getBirthDay() {
        return birthDay;
    }

    public void setBirthDay(Date birthDay) {
        this.birthDay = birthDay;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }
}
测试类
package com.daily.json;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.serializer.PropertyFilter;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TestFastJson {

    private static Student student;
    private static List studentList;
    static {
        student = new Student();
        student.setName("张三");
        student.setAge(18);
        student.setBirthDay(new Date());
        student.setAddr("湖南");

        studentList = new ArrayList<>();
        studentList.add(student);
        studentList.add(student);
    }

    private static PropertyFilter propertyFilter = (object, name, value) -> {
        if (name.equals("age") && value.equals(18)) {
                return false;
        }
        return true;
    };

    public static void main(String[] args) {
        String studentStr = JSON.toJSONString(student);
        //转对象
        Student student1 = JSON.parseObject(studentStr, Student.class);
        Student student2 = JSON.parseObject(studentStr, new TypeReference() {});
        //转集合
        String studentListStr = JSON.toJSONString(studentList);
        List students = JSON.parseArray(studentListStr, Student.class);
        List students2 = JSON.parseObject(studentListStr, new TypeReference>() {
        });
        //过滤字段,默认过滤null
        String student3 = JSON.toJSONString(student, propertyFilter);
        System.out.println(student3);
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73317.html

相关文章

  • java常用序列化与反序列化方法

    摘要:序列化工具类序列化工具的序列化与反序列化使用实现序列化和反序列化反序列化时,必须要有默认构造函数,否则报错使用序列化缓存此类分别包含序列化序列化序列化三种序列化方式。 序列化工具类 序列化即将对象序列化为字节数组,反序列化就是将字节数组恢复成对象。主要的目的是方便传输和存储。 序列化工具类: public class SerializeUtil { private stati...

    zhkai 评论0 收藏0
  • fastjson 的使用总结

    摘要:读取类路径下的配置文件解析成对象数组并返回读取类路径下的文件先将字符串转为数组将转化为实体类为属性赋值转成实体对象实体对象包含属性实体对象类型参考最佳实践介绍教程 showImg(https://segmentfault.com/img/bVbaqQi?w=400&h=300); 前言 最近在开发过程中使用了大量的json作为前后端数据交换的方式,由于之前没有对json做过系统的学习,...

    caohaoyu 评论0 收藏0
  • SpringMVC HttpMessageConverter 匹配规则

    摘要:例如,服务端不支持这种,应该返回。而当使用或者其他等价方式进行配置时,会把添加在最前面,优先级最高。好了,到此就基本上说完了整个的匹配规则或者叫选择过程。自己能力不是最大,却大包大揽承担最大责任,处理不了还返回,是甩锅客户端的行为。 以下内容,如有问题,烦请指出,谢谢! SpringMVC启动时会自动配置一些HttpMessageConverter,接收到http请求时,从这些Con...

    Imfan 评论0 收藏0
  • JavaWEB开发14——ajax

    摘要:一概述什么是同步,什么是异步同步现象客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态异步现象客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死的运行原理页面发起请求,会将请求发送 一、Ajax概述1.什么是同步,什么是异步同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态异步现象:客户...

    yearsj 评论0 收藏0
  • Java常用json序列化工具的部分局限性

    摘要:我最终的解决方案是用反序列化,再利用反射工具来对某些数值进行到的转化。速度快,但是对反序列化的类也有一定要求,而且在反序列化复杂的时较多阿里云的很多也由于这个原因并未使用。 Problem 在写Java的Unit Test时,对于Unit Test所期望的值,一般是利用工具从test/resources目录下将expectResult.json读取进来并用json序列化工具进行反序列化...

    elliott_hu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<