2

我正在使用 Scala 2.10、Salat 和 Play frmework 2.1-RC2(即将升级到 2.1 版本)和 MongoDB 构建应用程序。

这是一个匿名应用程序,其中向消费者公开 JSON Web 服务。到目前为止,JSON 直接使用 Play 的 Json API 和隐式转换器转换为模型对象。我必须重构一些案例类以避免 22 个元组的限制,现在我正在重构而不是平面案例类,以拥有一个嵌入式案例(和嵌入式 MongoDB 集合)。

Web 服务接口应保持不变,客户端仍应像以前一样在平面结构中传递 JSON 数据,但应用程序需要将它们映射到适当的案例类结构中。处理这种情况的最佳方法是什么。怕写了很多转换代码<-> Flat JSON <-> 复杂案例类结构<-> 从复杂案例类再到flat JSON输出。

您将如何处理这样的要求?我假设许多其他人可能已经面临案例类 22 元组限制来处理这种要求?你会如何处理这个

4

1 回答 1

1

Play 2.1 json 库严重依赖组合器 ( path1 and path2)。这些组合器都具有相同的 22 限制。这为您提供了两种选择:

  1. 不要使用组合器并以艰难的方式构造对象:path(json)将为您提供路径中该点的值。在 ScalaJsonCombinators搜索“访问 JsPath 的值”提供更多示例。
  2. 首先将 json 转换为单个对象中不超过 22 个值的结构,然后使用普通组合器。更多关于转换的信息可以在这里找到:ScalaJsonTransformers
于 2013-02-18T11:17:15.047 回答