Spray-Json:将无序列化为null

问题描述 投票:1回答:1

我正在将REST API移植到scala,使用带有Spray-json的akka​​-http。

旧API的响应如下:

{
    "result": { ... },
    "error": null
}

现在,我想保持精确的向后兼容性,因此当没有错误时,我需要带有error值的null键。

但是我在Spray-json中看不到对此的任何支持。当我用None错误序列化以下内容时:

case class Response(result: Result, error: Option[Error])

我最终得到

{
    "result": { ... }
}

并且它完全删除了错误值

scala akka-http spray-json
1个回答
0
投票

[NullOption特性应序列化null

NullOption特征为可选的案例类成员。通常,可选成员是未定义(NullOptions)不会被渲染。通过将这种特性混入您的自定义None您可以强制执行未定义的呈现成员为JsonProtocol

例如

null
© www.soinside.com 2019 - 2024. All rights reserved.