定义的VO在后台用日志打印出来,字段信息正常,但是前端响应的却没有

原因是VO对象没有设置getset方法,而fastjson如果找不到对应的方法则会导致这个结果.

其他情况

骆驼峰的命名规则,如果是使用IDE自动生成的getset方法,对于P_ID这种数据库字段, 可能会因为数据库字段设计没有设计为PID而导致对应的实体类的getset方法生成为下面的:

public int getpId() {
    return pId;
}
public void setpId(int pId) {
    this.pId = pId;
}

但是在fastjson中则是去调用了getPIDsetPID, 详情可以参见使用Fastjson生成Json字符串少字段属性

参考

使用Fastjson生成Json字符串少字段属性,数据丢失

扩展阅读

  1. fastjson SerializerFeature详解
  2. 各个JSON技术的比较