【问题标题】:Deserialize NaN, Infinity using Json4s使用 Json4s 反序列化 NaN、Infinity
【发布时间】:2018-09-14 14:03:32
【问题描述】:

需要将Json中的NaN(因为它不是JSON)转换为Json4s中的Double而不使用jackson。

例如,我有以下 JSON:

{ "a": NaN }

我需要使用 JSON4S 解析上面的 json。

如果可能的话,我们可以为此编写任何反序列化器吗?

【问题讨论】:

  • 没有办法做到这一点,因为 json4s 解析器不知道如何读取 NaN 值。
  • @SebastianCelestino 有什么办法可以解决这个问题吗?
  • 这是一个你需要的 json4s 更改的分支github.com/scelestino/json4s/tree/feature-NaN-support,但我认为这是一个无法官方完成的更改,因为 jackson 不支持 NaN(json4s 与它们一起工作,本机和杰克逊)

标签: scala json4s


【解决方案1】:

你可以从版本3.6.7实现这个:

import org.json4s._
import org.json4s.native.JsonMethods._

def main(args: Array[String]): Unit = {
  val json = """{"a": "NaN"}"""
  println(parse(json))
 // Displays
 // JObject(List((a,JString(NaN))))
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 2019-06-24
    • 2014-08-18
    相关资源
    最近更新 更多