如何使用 Playframework 呈现特殊的 XML/JSON 风格

Posted

技术标签:

【中文标题】如何使用 Playframework 呈现特殊的 XML/JSON 风格【英文标题】:How to render special XML/JSON Flavours with Playframework 【发布时间】:2013-12-08 09:17:02 【问题描述】:

根据James Wards Play Tutorial,从模型中获取 JSON 非常容易。同样对于 XML,这应该很简单。

但大多数时候,我不仅需要构建一个普通的 XML 或 JSON 端点,还需要提供它们的特殊风格。就我而言,这是GeoJSON 或TopoJSON。但在 XML 中,它可能是一个简单的 RSS 或 ATOM Feed,您必须从模型中交付。有时,构建一个适合非常讨厌的 XSD 模式的 XML 仍然是一种情况。

您有哪些选择来执行此操作,或者您会推荐以下哪一项?:

    如果是 GeoJSON/TopoJSON:激活 JSON 作为模板格式,并创建 JSON 模板 如果是 ATOM/RSS:只需使用 XML 模板 修改来自 toJson(tasks) 的 JSON 响应的某种方式? 使用一个可以开箱即用的精美库,除了我之外,每个人都知道它?

【问题讨论】:

【参考方案1】:
    如果您正在使用 GeoJSON,只需根据 GeoJSON 规范使用 Jackson 注释来注释您的对象,这并不难。如果这很难,那么有一些库附带 Java 对象,并为您提供了必要的注释,例如:https://github.com/opendatalab-de/geojson-jackson XML 模板可能是 Java 中最简单的模板。 您的用例是什么? toJson 返回一个 Jackson JSONNode。您可以根据需要修改它。但更好的做法是在您的对象上使用 Jackson 注释,以便首先获得正确的格式。 我想你指的是杰克逊,它可以做任何你想做的事情。如果您愿意,它甚至可以执行 XML。

【讨论】:

谢谢!几乎是我一直在寻找的东西,尤其是 geojson-jackson 正是我害怕自己做的事情。看起来是时候贡献一个 TopoJSON 部分了。

以上是关于如何使用 Playframework 呈现特殊的 XML/JSON 风格的主要内容,如果未能解决你的问题,请参考以下文章

来自 playframework 2.4 的开发设置

每种错误类型的 PlayFramework Application 2.7.x 自定义错误页面

如何使用 JPA 在 playframework 1.2.4 中执行存储过程?

如何在 playframework 中使用 guice 使用提供程序进行依赖注入

playframework:如何在 html 模板中使用常量类?

如何跟踪 Playframework 调用的所有 HTTP 请求?