问题标签 [spray-json]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
16792 浏览

scala - 如何在 spray-json 中表示可选字段?

我的请求中有一个可选字段:

我的协议是:

如何将 nextAt 字段标记为可选,以便正确读取和接受以下 JSON 对象:

我实际上并不真正关心 null 案例,但是如果您有详细信息,那就太好了。我正在使用 spray-json,并且认为如果原始 JSON 对象上不存在该字段,则使用 Option 会跳过该字段。

0 投票
1 回答
574 浏览

scala - 如何在 scala 中围绕泛型方法包装泛型方法?

我正在尝试包装 spray-json 解析器,使其返回Option而不是引发异常。

作为第一步,我只是试图用我自己的方法包装该方法,但我在使其通用时遇到了问题。

解析器使用隐式格式对象(它是为我正在使用的具体类型定义的)但是当该方法是通用的时,编译器会抱怨:

以下是相关代码:

我需要做什么才能使其正常工作?

0 投票
1 回答
2506 浏览

scala - 来自周围范围的隐式参数解析

我不喜欢将隐式参数带入我的代码中,所以我想在使用它们的地方封装它们的使用。因此,我试图定义一个对象,该对象既包含对 spray-json 的调用和异常处理,又包含我的每个模型类的默认隐式 JsonFormats。但是,除非将隐式参数导入客户端调用代码,否则不会解析隐式参数,这正是我不希望它们出现的地方。这是我到目前为止所拥有的(它不能解决隐式格式化程序),有没有一种方法可以获得我想要的工作?

注意。JsonFormat 是 JsonReader 的一种

编辑:这是我根据@paradigmatic 的第二个建议(我无法开始工作,我仍然得到Cannot find JsonReader or JsonFormat type class for T)所写的内容。我错过了什么吗?

作为记录,这是一个确实有效的代码片段,但我试图避免它,因为它需要太多的客户端代码(即它需要在范围内具有隐式):

0 投票
1 回答
759 浏览

scala - Scala 类型类模式和泛型方法

我正在尝试编写一个通用提取器,用于使用 spray 和 spray-json 解析 json POST 正文。

但是,我正在努力让它与多个模型一起使用。这是服务对象中的 case 语句:

这是我写的提取器(只要在 case 语句的范围内只有一个模型的 JsonReader 就可以工作):

但是,一旦我添加了一个新模型(和关联的 JsonReader),代码就不再编译并出现此错误:

JsonReaders 的泛型类型不同的事实似乎已经丢失。这种类型的擦除吗?有没有办法得到我想要的?

这是迄今为止该项目的完整编译代码,并附有注释ExampleService,解释了导致它崩溃的原因:github.com/rsslldnphy/foam。感谢您的帮助,谢谢。

或者,如果我想要的目前不可能,任何人都可以提出替代方法吗?

0 投票
0 回答
525 浏览

scala - 在通用路由函数中使用 spray-json 编组器

我正在使用 Spray 编写 REST 服务。我有几条路线遵循相同的模式(GET /foos、POST /foos、GET /foos/:id 等),所以我想将这些路线分解成一个我可以调用的通用函数,比如modelRoutes[Foo]("foos")modelRoutes[Bar]("bars")

实际的数据库操作发生在 Controller[T] 特征上,我有隐式object FooController extends Controller[Foo]等。例如,def getAll: List[T]在 Controller[T] 和def getAll: List[App]AppController 上。

我遇到的问题是在里面modelRoutes[T <: Model : Controller](prefix: String),模型的类型丢失了,所以 Marshaller[T] 和 Marshaller[List[T]] 找不到。到目前为止,我已经尝试了各种隐含和清单的排列,但没有运气。

如何在通用函数中正确地与 Marshaller 交互?

0 投票
1 回答
1327 浏览

scala - 使用 Jackson 时在 Spray.io 中找不到隐式 Marshaller

我有一个处理 POST 的 Spray.io 指令,我想使用 Jerkson(Jackson 的 scala 接口)将传入的 JSON 解析为适当的类。

问题是当我去编译时,Spray 去寻找一个 Marshaller:

我需要为此编写一个自定义的 Marhsaller 吗?还是我的指令写得不正确?如果我确实需要一个,那里有什么好的例子吗?

谢谢!

0 投票
2 回答
1068 浏览

scala - 无法将 unicode 符号转换为西里尔字母

我有一堆文件保存在 Apache Lucene 中,其中一些名称是俄语,当我尝试将它们打印出来时,它看起来像这样"\u0410\u0441\u043f\u0430\u0440",但不是西里尔符号。该项目在Scala中。我尝试使用 Apache CommonsunescapeJava方法解决此问题,但没有帮助。还有其他选择吗?

更新: 项目是用 Spray 框架编写的,并像这样返回 json。

0 投票
2 回答
1120 浏览

routing - 如何使用喷雾路由测试自定义 Json 对象

我正在为一些 CRUD 操作在 mongodb 之上创建一个带有喷雾路由的 Rest API,这一切都很好,期待每当我尝试使用 specs2 测试它时,以下规范

它将失败并出现以下错误:

我不知道在哪里查看源文件的引用和行号指向通用的 failTest(msg:String) 方法

更多信息:

我有一个案例类,我使用 SalatDAO 坚持使用 Mongo

其中 ObjectId() 一个类是包装 mongodb 的 ID 生成以通过 spray_json 进行此(未)编组的类我创建了一些 jsonFormats

以及我的路线的相关部分(删除了错误处理和日志记录):

0 投票
3 回答
1320 浏览

scala - 使用 spray-json 处理默认值的好方法是什么

在某些情况下,默认值比案例类中的可选值更有意义:

在第一种情况下,我希望能够轻松地将以下 json 转换为实例:

但是对于标准jsonFormat2(Car),spray-json 抱怨缺少numberOfWheels.

我如何最干净地解决这个问题?

0 投票
1 回答
8610 浏览

scala - How to expose REST service for JSON?

I need to expose a Spray service that accepts JSON payload. Where can I find a sample that would demonstrate such a feature?