Сериализация Map[String, Any] в JSON, где Any включает BigDecimal

Используя Scala 2.10 и json4s 3.5.0, я пытаюсь сериализовать карту в строку JSON. Например:

implicit val formats = org.json4s.DefaultFormats.withBigDecimal
println(Serialization.write(Map("key" -> new java.math.BigDecimal(1)))

Не удается с:

java.lang.RuntimeException: not a primitive class java.math.BigDecimal

Я следовал за [https://stackoverflow.com/a/27847784/901330], но BigDecimal, похоже, нарушает его. Как мне сделать эту сериализацию?


person canzar    schedule 24.01.2017    source источник
comment
Отображение Any, как правило, (очень) плохая идея   -  person cchantep    schedule 24.01.2017


Ответы (1)


org.json4s.BigDecimalJsonFormats работает для scala.math.BigDecimal (Scala BigDecimal), а не для Java BigDecimal (java.math.BigDecimal)

Итак, используйте BigDecimal(1) (Scala BigDecimal)

person pamu    schedule 24.01.2017