JSON.toJSONString报空指针异常

背景:

实体类如下:

@Data
@Slf4j
public class PkMatchGlobalConfig {

    private Integer pkSwitch;

    private Integer bigPendantSwitch;

    private Integer smallPendantSwitch;

    private Integer roundBountyNum;

    private Integer bestASTNum;

    private Integer grandTotalBountyNum;

    public boolean isSmallPendantSwitchOpen() {
        return this.smallPendantSwitch == 1;
    }

    public boolean isBigPendantSwitchOpen() {
        return this.bigPendantSwitch == 1;
    }

    public boolean isPkSwitchOpen() {
        return this.pkSwitch == 1;
    }
}

传入参数:

{
 "pkSwitch":"1"
}

可知PkMatchGlobalConfig其它属性为空,想把这个类转化为Json格式然后进行解析:

String string = JSON.toJSONString(pkMatchGlobalConfig); (1)

JSONObject jsonObject = JSON.parseObject(string, JSONObject.class);  (2)

然而在执行语句(1)的时候发生了空指针异常,这是因为在解析的时候经过如下步骤:

serializer.write(object);

自动对其中方法进行了解析,如下图:

在这里插入图片描述

对方法进行如下修改:

	public boolean isSmallPendantSwitchOpen() {
        if(this.smallPendantSwitch == null) {
            return false;
        }
        return this.smallPendantSwitch == 1;
    }

    public boolean isBigPendantSwitchOpen() {
        if (this.bigPendantSwitch == null) {
            return false;
        }
        return this.bigPendantSwitch == 1;
    }

    public boolean isPkSwitchOpen() {
        if (this.pkSwitch == null) {
            return false;
        }
        return this.pkSwitch == 1;
    }

你可能感兴趣的:(JAVA)