前言

任何时候不推荐java的字段名使用is开头

实例

定义一个测试的bean

package com.ahut.common.entity;

public class TestBean {

/**
* 非boolean类型, is开头字段, get方法使用getIsXXX
*/
private String isFlag;
/**
* 非boolean类型, is开头字段, get方法使用isXXX
*/
private String isName;
/**
* boolean类型, is开头字段, get方法使用getIsXXX
*/
private boolean isAge;
/**
* boolean类型, is开头字段, get方法使用isXXX
*/
private boolean isSuccess;

public String getIsFlag() {
return isFlag;
}

public String isName() {
return isName;
}

public boolean getIsAge() {
return isAge;
}

public boolean isSuccess() {
return isSuccess;
}

public void setIsFlag(String isFlag) {
this.isFlag = isFlag;
}

public void setIsName(String isName) {
this.isName = isName;
}

public void setAge(boolean age) {
isAge = age;
}

public void setSuccess(boolean success) {
isSuccess = success;
}
}

使用fastjson序列化

    /**
* @desc :
* @author : cheng
* @date : 2019-03-07 21:40
*/
@Test
public void testJson() {
TestBean bean = new TestBean();
bean.setIsFlag("true");
bean.setIsName("true");
bean.setAge(true);
bean.setSuccess(true);
System.out.println(JSON.toJSONString(bean));
}

结果

{"isAge":true,"isFlag":"true","success":true}

总结

  1. is开头的非boolean类型字段,使用getIsXXX方法,序列化后字段名不变
  2. is开头的非boolean类型字段,使用isXXX方法,序列化之后消失
  3. is开头的boolean类型字段,使用getIsXXX方法,序列化之后字段名不变
  4. is开头的boolean类型字段,使用isXXX方法,序列化之后字段名前的is被去除