FastJson序列化null值问题

在使用fastjson进行序列化时,他默认当字段为null时是不会序列化这个字段的,当你需要将null序列化出来时,可以用@JSONField的serialzeFeatures属性加在字段上

@JSONField(serialzeFeatures = SerializerFeature.WriteMapNullValue)
private Integer num;

这样在序列化返回给前端时,num这个字段如果为null就会返回null值

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redis是一个非常流行的开源内存数据库,在Java应用程序中使用Redis时,通常需要将对象序列化为字节数组,然后将其存储在Redis中。而Fastjson是一个非常快速、高效的Java序列化框架,可以将Java对象快速序列化为JSON格式的字符串。下面是使用Fastjson进行Redis序列化的示例代码: ```java import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; import redis.clients.jedis.Jedis; public class RedisFastjsonSerializer<T> { private Class<T> clazz; public RedisFastjsonSerializer(Class<T> clazz) { this.clazz = clazz; } public T deserialize(byte[] bytes) { if (bytes == null) { return null; } return JSON.parseObject(bytes, clazz); } public byte[] serialize(T object) { if (object == null) { return null; } return JSON.toJSONBytes(object, SerializerFeature.WriteClassName); } public static void main(String[] args) { // 创建一个Redis客户端 Jedis jedis = new Jedis("localhost", 6379); // 创建一个Java对象 User user = new User("Alice", 18); // 使用Fastjson进行序列化 RedisFastjsonSerializer<User> serializer = new RedisFastjsonSerializer<>(User.class); byte[] bytes = serializer.serialize(user); // 将序列化后的字节数组存储到Redis中 jedis.set("user", bytes); // 从Redis中读取数据,并使用Fastjson进行反序列化 byte[] resultBytes = jedis.get("user"); User resultUser = serializer.deserialize(resultBytes); // 输出结果 System.out.println(resultUser); } } class User { private String name; private int age; public User() { } public User(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; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } } ``` 在上面的示例代码中,我们创建了一个User对象,并使用Fastjson进行序列化。然后将序列化后的字节数组存储到Redis中,并从Redis中读取数据,并使用Fastjson进行反序列化。最后输出结果。需要注意的是,在序列化时,我们使用了Fastjson的WriteClassName特性,这样在反序列化时就可以自动识别出对象的类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值