ActiveRecord Db返回数据问题

springboot 中使用 ActiveRecord

com.jfinalactiverecord5.0.0

返回到前端的数据为什么会变成这种格式?image.pngimage.png

评论区

JFinal

2022-05-06 12:13

估计你是用了 fastjson 转换,fastjson 只认 getter 方法,所以会调用 record 里头的 getColumns() 方法来转换

解决办法是加配置:
SerializeConfig.getGlobalInstance().put(Record.class, new FastJsonRecordSerializer());


此外,还要创建一个类来支持:

/**
* FastJsonRecordSerializer 支持序列化 activerecord 的 Record 类型
*/
public class FastJsonRecordSerializer implements ObjectSerializer {

public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
if (object != null) {
Record record = (Record)object;
serializer.write(record.getColumns());
}
}
}

JFinal

2022-05-06 12:14

以上方案,仍然无法将下划线字段转成驼峰, fastjson 好像还有其它配置可以改变这个行为

如果不可以的话,建议引入 JFinalJson,可以对 json 处理得很好,添加配置:
// 将 Model、Record 字段名在转成 json 时转换为驼峰格式
JFinalJson.setModelAndRecordFieldNameToCamelCase(false);

zzutligang

2022-05-06 16:11

我就是使用JFinalJson,可以很好的控制驼峰。

happyboy

2022-05-06 17:16

我都是把Record转换成Map再fastjson一下,<(* ̄▽ ̄*)/

JFinal

2022-05-06 22:45

@happyboy 为啥不先配置一下,然后就不必转来转去了:
SerializeConfig.getGlobalInstance().put(Record.class, new FastJsonRecordSerializer());

热门反馈

扫码入社