【发布时间】:2022-01-04 23:02:48
【问题描述】:
我正在研究一个用例,我正在尝试构建一个 Web UI 界面(使用反应和播放框架),该界面将 Json/Json 字符串作为输入并返回表示给定 json 的 Scala 对象。
输入:
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
输出:
{SomeObjectName}(1,1,"delectus aut autem", false)
这是我的理解,要从 json 中获取 scala 对象,我们需要 scala 对象类型。 例如,我们需要 MailServer 的类定义,如 example
所示我找到了一个example,关于如何使用库将 json 转换为案例类:transform-json-types。这里的问题是这个库在 UI 中。如果我在 scala 中有这样的库,那就太好了,但我找不到。所以,我正在考虑将生成的案例类定义从 UI 发送到后端作为字符串,然后在后端提取案例类。
几个问题:
- 我可以从字符串中提取案例类定义吗?如果是,怎么做?
- 我的方向正确吗?
- 还有其他方法可以解决这个用例吗?
感谢任何帮助。请指出正确的方向。
【问题讨论】:
-
所以您不能将所有可能的 json 定义为后端的对象吗?请记住,如果某些字段在 json 中是可选的,则可以在 scala 中将其定义为 Option。
-
是的,因为用户输入在 UI 中。
-
据我了解,您想处理任意 JSON 值,因此我将使用 play-json 中的
JsObject例如并创建一个查看它并生成一个不错的字符串或案例类定义。 -
您似乎只需要 Scala 中的 JSON 库,您是否看过:circe、uJson、 play-json 等?
-
@LuisMiguelMejíaSuárez 是的,我看过其中一些库。还没有找到任何适合我要求的库。除非我错过了什么。