FastJson解析is开头变量方法

本文介绍了解决FastJson解析JSON字符串时,对于以is开头的布尔型字段始终返回false的问题。通过调整实体类中set方法的名称,确保与JSON字段匹配,从而正确解析布尔值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载请注明出处
http://blog.youkuaiyun.com/u014513456/article/details/53197266
Author :ruanjianjiagou@163.com

FastJson 解析序列化对象的 is开头的变量 取值一直为false的解决方案

背景:
在项目开发过程中,服务器给的json串中某变量是这样的“IsNewUser”代表是否为新用户,在转换实体Bean的时候我们通常会借助GsonFormat 自动转换Bean如下实体

public static class ProductsEntity implements  Serializable {
private static final long serialVersionUID = -4316440836525137237L;

        private String Title;//标题
        private double Amount;//金额
        private boolean IsNewUser;//是否新用户

         public void setTitle(String Title) {
            this.Title = Title;
        }

        public void setAmount(double Amount) {
            this.Amount = Amount;
        }
          public String getTitle() {
            return Title;
        }

        public double getAmount() {
            return Amount;
        }
        public boolean isBuyNewUser() {
            return IsBuyNewUser;
        }

        public void setBuyNewUser(boolean buyNewUser) {
            IsBuyNewUser = buyNewUser;
        }
}

于是在取值的时候IsNewUser 字段一直为false
无论json中是true还是false 解析出来都是false

问题代码

public void setBuyNewUser(boolean buyNewUser) {
            IsBuyNewUser = buyNewUser;
        }

应该改为

public void setIsBuyNewUser(boolean buyNewUser) {
            IsBuyNewUser = buyNewUser;
        }

理论依据为

Bean的命名规则
Bean中对应的set必须和Json中的字段对应,比如Json中有id字段,get方法名应该为setId,必须是set+字段名,字段名忽略大小写,如果字段是类似的is_default,那么set方法名应为setIs_default,下划线不能省略


FastJson是阿里巴巴提供的一个Json处理工具包,具有极快的性能,超越任其他的Java Json parser。使用起来非常方便。

项目主页 :https://github.com/alibaba/fastjson/wiki
引用方式: compile ‘com.alibaba:fastjson:1.2.21’


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值