如何把两个Model检索到数据后合并一起然后renderJson成一个json

@JFinal

波总你好,现在有一个需求,就是两个Model都通过findbyid检索到数据了,现在的需求是需要把这两个检索到数据的model合并到一起通过renderJson渲染成一个json对象返回给前端使用。

当然也可以通过多表联合的方式查询,然后通过Db+Record的方式解决。但这种方式,render的json字段名就是数据库字段名(历史原因,数据库字段名是带下划线的),而renderJson(Model)的方式是会把带下划线的字段名转为驼峰命名的。我看Model里有一个有一个put(Model)方法,做了实验,renderJson后前端得到的还是原来的那个model内容。

麻烦波总能不能提供一个比较优雅的办法,谢谢!

评论区

zzutligang

2019-05-30 13:10

补充:主配置里configConstant配置了这个:me.setJsonFactory(FastJsonFactory.me());

杜福忠

2019-05-30 15:05

本质就是两个Map做合并,那字段一样的时候怎么办?覆盖?比如ID 字段?

逍遥一生

2019-05-30 16:30

Kv result = Kv.by("model1",model1).set("model2",model2); renderJson(result); 用map返回, 查出的是两个对象,自然返回的时候也要是两个对象,不然出现字段重复就不好弄了。

zzutligang

2019-05-30 22:13

感谢上面@逍遥一生@杜福忠 两位!理论上,两个Model是没有重复的字段的,当然外键字段肯定值是相等的。比如User里有USER_ID,Blog里也有USER_ID这个字段,既然是两个Model合并,那就肯定这两个字段是一样的,谁覆盖谁都无所谓的。至于其他的字段有重名的,暂不考虑,只管覆盖就行了。

热门反馈

扫码入社