假设我有类似 REST 的端点,它返回 JSON 数据,例如来 self 的 Java Play 应用程序中的模型。我找到了两种创建 JSON 输出的方法:
使用与 HTML 模板类似的 JSON 模板。它可能看起来像这样:
{ "name": "${user.name}", "id": "${user.id}", . . . }
我喜欢它的是灵 active 。我可以轻松地围绕数据(用于元数据、状态消息等)构建一个包装器。我可以轻松地影响交付哪些内容(密码字段、上次登录的时间戳等内容当然不是您想向客户端显示的内容)。当然,一个要求是模板变量的内容应该正确转义才能获得有效的 JSON。最好的方法是什么?
第二种方法是将模型的 POJO 直接序列化为 JSON。当然,这更快并且可以更省力地完成。与模板方法相比,它可能更可靠,因为它是一个自动过程。但是:如何排除密码和元数据字段等数据?我应该使用仅包含相关数据的 jackson 实现构造一个新的 JSON 对象吗?或者我是否必须为每个模型类创建一个“json-model”,并将每个请求上的真实模型转换为 json-model,然后才能序列化它?
就我个人而言,我喜欢模板方法,因为它的灵 active 。但有些人会说,永远不要手动构建 JSON、XML 等。但这真的是一个问题吗?您会建议什么?
最佳答案
假设您使用的是 Java,Jackson 允许您使用注释排除字段。请参阅:http://jackson.codehaus.org/1.0.0/javadoc/org/codehaus/jackson/annotate/JsonIgnore.html
关于java - Play 2 : Best way to deliver JSON content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18013777/