我正在创建一个聚合数据的服务,并且需要能够读取任何未知的 JSON 文档。我的管道定义如下:
private def pipeline = (
addHeader("Accept", "application/json")
~> sendReceive
~> unmarshal[JsObject] // Need this to work for JsObject or JsArray //
~> recover
)
这将适用于 JsObject 但不适用于 JsArray。如果我将其更改为 JsArray,那么它(当然)不会与 JsObject 一起使用。我的恢复方法返回一个 JsObject。
我希望能够将其定义为 JsValue 或强制执行 Root 格式,但对于 JsValue 我得到以下编译器错误:
找不到 spray.httpx.unmarshalling.FromResponseUnmarshaller[spray.json.JsValue] 类型的证据参数的隐式值
根格式也出错。
我不知道如何完成我需要的,任何帮助将不胜感激。