FastJson解析is开头变量方法

来源:互联网 发布:eromangabox新域名 编辑:程序博客网 时间:2024/05/29 19:04

转载请注明出处
http://blog.csdn.net/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’


0 0
原创粉丝点击