[alibaba/fastjson]当Bean中某个参数为空、且包涵public方法,toJSONStringWithDateFormat会报NPE

2025-10-28 356 views
7
String dateFormat = "yyyy-MM-dd HH:mm:ss";
User user = new User();
JSONObject.toJSONStringWithDateFormat(user, dateFormat, SerializerFeature.WriteMapNullValue);

例如:

@Data
class User {
  private String name;
  ……
  ……
  public String getCustomName() {
    String customName = getName() + "_";
    return customName;
  }
}

业务场景:在切面中打印入参、出参。出参时,toJSONStringWithDateFormat会序列化Bean中的getCustomName()方法,当getName()为空时,会报NPE,请教下这个fastJson有方法避免吗,或者是否存在此问题,非常感谢、顺颂商祺。

回答

3

复现失败,没出现这个问题:)

3

复现失败,没出现这个问题:)

简述这个问题就是:如何FastJson不扫描getCustomName()方法

9

复现失败,没出现这个问题:)

简述这个问题就是:如何FastJson不扫描getCustomName()方法

@JSONField(serialize = false) public String getCustomName() { String customName = getName() + ""; return customName; } 使用此注解可以不扫描getCustomName方法,同时在name为null的情况下我这边也没出现NPE {"customName":"null","name":null,"time":"2019-11-07 10:40:45"}

3

复现失败,没出现这个问题:)

简述这个问题就是:如何FastJson不扫描getCustomName()方法

@JSONField(serialize = false) public String getCustomName() { String customName = getName() + ""; return customName; } 使用此注解可以不扫描getCustomName方法,同时在name为null的情况下我这边也没出现NPE {"customName":"null","name":null,"time":"2019-11-07 10:40:45"}

可以了。。自己代码写错了。。感谢。