用于呈现JSON的Spring模板引擎

我来自Ruby,刚刚开始测试Spring,发现它相当不错。

然而,我习惯于能够使用像rabl这样的库来自定义渲染的JSON输出,并且将内部模型直接暴露到JSON感觉真的是错误的,就像我现在使用注释@ResponseBody并返回模型一样。

有没有人对类似于rabl的库有任何提示,但对于java/spring或者是否有现成的方法可以轻松地使用spring而无需在JSON手动编写模板?

Spring使用Jackson进行JSON(de-)序列化。 看看Jackson wiki ; 它描述了几种自定义JSON生成或解释方式的方法。

正如我从你的评论中所理解的那样,你有几个习惯。

  • 重命名字段可以通过使用@JsonProperty("name")注释字段来实现
  • 不能通过使用@JsonIgnore注释字段来实现渲染字段

但这些确实需要您触摸您的模型。 据我所知,如果不至少轻微改变你的模型类,你就无法实现这一目标。 jackson有“ 观点 ”的概念,但他们仍然需要在你的模型上加注。 实际上,顺便说一下,我从未遇到过用JPA和Jackson注释注释Java类的问题。

最后,您可以考虑创建模型的两个版本 – 一个来自您的数据库(或您拥有的任何数据源),以及一个用于与用户界面交互的版本。 但是,这需要停用变压器或转换器。 这是否是一个选项取决于你。