使用 Play Framework 和具有超过 22 个参数的案例类

2024-01-11

我已经看到了一些涉及臭名昭著的“22 个字段/参数”问题的其他问题,这是 Scala V here and here https://stackoverflow.com/questions/33494526/how-to-unlimit-spray-jsonformat。然而,根据这个博客文章 https://underscore.io/blog/posts/2016/10/11/twenty-two.html,看来 22 个参数限制在case class已修复;至少在语言方面是如此。

我有一个case class我想加载任意(读取:> 22)数量的值,稍后将使用 Play 库将其读入 JSON 对象。

它看起来像这样:

object L {
  import play.api.libs.json.Reads. _
  import play.api.libs.functional.syntax._

  implicit val responseRead: Reads[L] = (
    MyField1.jsPath.Read[MyField1.t] and 
    MyField2.jsPath.Read[MyField2.t] and
    ...
    MyField35.jsPath.Read[MyField35.t]
  ) (L.apply _)
}

case class L(myField1: MyField1.t, myField2: MyField2.t, ... myField35: MyField35.t)

问题是在编译时,Scala 抱怨参数中有超过 22 个case class。 (具体来说:在对象定义的最后一行,当编译器尝试构建时,我得到:“实现将函数限制为 22 个参数”。)我目前使用的是 Scala v2.11.6,所以我think这不是语言问题。这让我觉得 Play 库还没有更新他们的实现Read.

如果是这样的话,那么我想最好的办法是将相关字段分组到元组中并通过 JSON API 传递元组?


正如您引用的博客文章中提到的,22 个参数的限制对于 Scala 2.11 及更高版本中的函数仍然有效,所以您遇到的情况is语言问题。本例中的函数调用是:

L.apply _

重构模型是解决此限制的一种方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Play Framework 和具有超过 22 个参数的案例类 的相关文章

  • 如何轻松地将 Ajax、perl 和 JSON 结合使用?

    我正在尝试使用 Ajax 制作一个网页 Example 我创建了一个 Perl CGU 文件来触发一个简单的帖子 文件 test cgi name 托马斯 回复短信 你的名字是托马斯 我创建了一个可以使用该帖子的 html 文件 但随后页面
  • 使用 ActiveAndroid 库存储 HashMap

    我有一堂课 Table name Control public class Control extends Model Column private String name Column private Map
  • PostgreSQL:比较 json [重复]

    这个问题在这里已经有答案了 众所周知 目前 PostgreSQL 还没有方法来比较两个 json 值 比较就像json json不起作用 但是选角呢json to text before Then select x a y b json t
  • IntelliJ:线程“主”java.lang.NoClassDefFoundError中的异常:org/apache/spark/sql/types/DataType

    附言 有一个类似的问题here https stackoverflow com questions 40287289 java lang noclassdeffounderror org apache spark logging 但那是在
  • 优化数据可视化 Web 应用程序的性能

    我正在重写 3 年前编写的数据可视化网络工具 从那时起 浏览器的 JavaScript 引擎变得更快 所以我正在考虑将部分工作从服务器转移到客户端 在页面上 数据在表格和地图 或图表 中可视化 它使用相同的数据 但以不同的方式 因此准备显示
  • 如何在 scala repl 和 sbt 控制台中关闭/打开 typer 阶段

    是否可以在不退出当前会话的情况下切换阶段 我尝试进入 power 模式 但它仍然不打印类型 在SBT中只需添加以下设置 set scalacOptions in Compile console Xprint typer 在 REPL 中你可
  • 如何使用 Retrofit 解析嵌套 json....?

    我不知道该怎么办使用 Retrofit 解析 json 熟悉使用 Retrofit 解析简单的 json 但不熟悉解析嵌套Json using Retrofit 这是我的 Json 数据 current observation image
  • 如何通过 javascript 和 ajax 调用 Scala 中的方法?

    我不知道我的标题是否有点误导 但这是我真正需要帮助的 我正在获取这个网址 get fb login fbEmail function data console log data 这是我的路线 GET fb login email prese
  • 在 Spark 结构化流 2.3.0 中连接两个流时,左外连接不发出空值

    两个流上的左外连接不发出空输出 它只是等待记录添加到另一个流中 使用套接字流来测试这一点 在我们的例子中 我们想要发出具有 null 值的记录 这些记录与 id 不匹配或 且不属于时间范围条件 水印和间隔的详细信息如下 val ds1Map
  • 如何在 sbt 控制台中加载 scala 文件? [复制]

    这个问题在这里已经有答案了 可能的重复 将 Scala 文件加载到解释器中以使用函数 https stackoverflow com questions 7383436 load scala file into interpreter to
  • json 解析器和编码器应如何处理转义的 unicode?

    json 规范允许在 json 字符串 格式为 uXXXX 中转义 unicode 它特别提到受限代码点 非字符 作为有效的转义代码点 这是否意味着解析器应该从包含非字符和受限代码点的字符串生成非法的 unicode 一个例子 key uF
  • Spark 2.2 无法将 df 写入 parquet

    我正在构建一个聚类算法 我需要存储模型以供将来加载 我有一个具有以下架构的数据框 val schema new StructType add StructField uniqueId LongType add StructField tim
  • DbGeography 多边形到 JSON

    我将 DbGeography 多边形存储在数据库中 我的控制器从数据库获取多边形 我需要将它们转换为 JSON var polygons db Areas Where x gt x Type type Select x gt new Vie
  • 如何将异常序列化为Json

    C 异常是 ISerialisable 因此它们不能也是 DataContract 因此我无法使用 JsonDataContractSerializer 将异常序列化为 JSON 的替代方案是什么 由于这个问题还没有真正得到解答 只需创建一
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • 正确使用术语 Monoid

    从下面的例子来看 我认为这样的说法是正确的String在串联运算下定义了一个幺半群 因为它是关联二元运算 并且String碰巧有一个身份元素 它是一个空字符串 scala gt Jane Doe Jane Doe res0 Boolean
  • 如何在 JSON 中转义双引号

    我试图显示双引号 但它显示了反斜杠之一 maingame day1 text1 Tag 1 text2 Heute startet unsere Rundreise Example text Jeden Tag wird ein neues
  • 将 JSON 反序列化为表

    我需要根据通过 API 接收的数据填充 ABAP 中的表 我正在使用以下 ABAP 函数从 json 填充现有的 ABAP 表 JSON 是正确的 表中包含相应的表 ui2 cl json gt deserialize EXPORTING
  • 如何在不从 DataFrame 转换并访问它的情况下向数据集添加列?

    我知道使用以下方法将新列添加到 Spark 数据集的方法 withColumn and a UDF 它返回一个 DataFrame 我还知道 我们可以将生成的 DataFrame 转换为 DataSet 我的问题是 如果我们仍然遵循传统的
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du

随机推荐

  • 表值函数和实体框架

    我正在尝试使用实体框架执行 TVF 但由于某种原因它不起作用 也许那里的任何人都可以帮助我解决这个问题 以下是代码示例 这就是函数 CREATE FUNCTION dbo udf profileSearch keywords NVARCHA
  • Kotlin:创建自定义 CoroutineContext

    我在 API 后端使用 Kotlin 我不想在中运行数据库查询common pool 基本上 我想创建一个CoroutineContext有许多与数据库匹配的线程maximumPoolSize 完成此任务的最佳方法是什么 一般情况下以及针对
  • 为什么有些项目的 use 子句接受 Jpeg,而其他项目则需要 vcl.imaging.jpeg?

    我正在将一些项目更新到 XE2 但我不明白为什么在某些项目上 uses jpeg 被接受 在其他方面我需要写 uses vcl imaging jpeg 你能给我解释一下吗 差异在于各个项目的项目选项中的单元范围名称设置 如果你有Vcl I
  • 如何用单斜杠替换特殊字符

    我有一个关于 Java 中字符串的问题 比方说 我有一个像这样的字符串 String str The startup trace state is info 由于字符串包含特殊字符 例如 我需要将字符串替换为 根据我的要求 如何替换特殊字符
  • R {targets} 包:如何使用字符串引用现有目标?

    我正在使用 targets 包 尝试根据现有目标创建新目标 虽然通过以 NSE 样式键入名称来引用现有目标很简单 但通过使用字符串作为 别名 却无法做到这一点 只是为了清楚我在说什么 我会表明我的意思outside the targets
  • 在 DatePickerDialog 中以数字格式而不是字母顺序显示月份字段

    下图显示了我在 Android 应用程序中的当前日期选择器 但是我想将所有月份显示为 01 02 03 12 而不是一月 二月 三月 十二月 任何帮助将不胜感激 你可以自己设计Dialog with NumberPicker 但如果你仍然想
  • Symfony 一次性实例化一项服务并与多个用户一起使用

    我正在尝试做一项仅实例化一次的服务 然后当新用户访问我的主页时 我可以在需要时重新使用它 我想做的是一个实例化后设置日期时间的服务 当任何用户连接到我的主页时 我会向我的服务发送一个日期时间 然后比较两个日期时间 实例化服务时的日期时间和用
  • 将 AWS API Gateway API 端点的 IP 列入公司防火墙中的白名单

    我已经构建了一个 AWS API Gateway API 端点 该端点将被我公司网络中的一台机器命中 以每隔一定时间间隔发布数据 但是 当我通过 Postman 从办公室网络尝试它时 办公室防火墙会阻止它 但是当我使用移动热点 其他 wif
  • 分配变量并显示结果

    我收到 T ECHO 意外错误 完成上述任务的正确方法是什么 我稍微扩展一下这个问题 这是一段 wordpress 代码 get option 函数不回显该值 所以我尝试了
  • java - HashMap 中的内容适当的数据

    想象一下您有一本学生评价日记 每个学生在日记中都有每个科目的分数 我想将其存储在HashMap lt gt 但我不明白为什么标记会合并 在期刊课上 public class Journal private static HashMap
  • 两个十六进制数的相似度

    我试图使用汉明和编辑距离找到类似的哈希值 十六进制哈希值 假设两个哈希值相似 如果它们的汉明距离小于 10 不同位数 Hash 1 ffffff base 16 Hash 2 fffff0 base 16 两个哈希之间的汉明距离是4 它们是
  • Android 成功分享意图

    如何判断用户是否成功完成了共享意图 例如 如果用户想通过 Facebook 或 Twitter 分享应用程序 Edit 我不是在研究如何创建Intent共享的 我想知道用户是否确实分享了任何内容 或者用户是否按下了取消按钮 我认为没有一种可
  • 在 Recyclerview 或 Listview 中添加多个标题。随机地

    如何在 RecyclerView 或 listview 中添加多个标题或分隔符 随机如下图突出显示 RecyclerView 中基于日期的多个标题 演示图像 您可以使用库来实现它分段回收器视图适配器 https github com lui
  • Project Euler - #1 Python 错误解决方案

    总体而言 我对编码还比较陌生 因此启动了欧拉项目 以使我的编码更进一步 花了一些时间思考如何自己解决第一个问题并尝试使用递归函数 不幸的是总是遇到同样的错误 266333 我错过了什么 有什么重大错误值得学习吗 原问题是 如果我们列出所有
  • 如果我使用 iPad 尺寸创建应用程序,如何找到 iPhone 尺寸的“安全区域”?

    我正在创建一个游戏 想要使用 iPad 尺寸设置 横向 1024x768 据我所知 使用 iPad 设置只会在 iPhone 上裁剪掉部分高度 假设我有一张 iPad 的 2048x1536 背景图像 1024x768 和 iPhone 6
  • 为什么 Node 比 Chrome 慢 10 倍?

    我正在运行我的Z80模拟器 https github com lkesteloot z80 emulator在 Chrome 和 Node 中 我在 Chrome 中获得的性能大约是 Node 中的 10 倍 100k Z80 指令在 Ch
  • 在 python 中创建线程

    我有一个脚本 我希望一个函数与另一个函数同时运行 我看过的示例代码 import threading def MyThread threading thread doing something def MyThread2 threading
  • DB::raw laravel 5.4 中的 WHERE IN 数组绑定

    我正在尝试将数组绑定为原始数组WHERE IN在 Laravel 中查询DB example arr 1 2 3 DB select DB raw select from test1 WHERE id IN arr 由于某种原因 数组没有更
  • node.js eventEmitter + http.request

    我做了这个教程Node js 事件发射器 http www mshiltonj com blog 2011 10 04 nodejs eventemitter example with custom events 效果很好 我添加了一个使用
  • 使用 Play Framework 和具有超过 22 个参数的案例类

    我已经看到了一些涉及臭名昭著的 22 个字段 参数 问题的其他问题 这是 Scala V here and here https stackoverflow com questions 33494526 how to unlimit spr