2017-01-24 8 views
1

Используя Scala 2.10 и json4s 3.5.0, я пытаюсь сериализовать карту в строку JSON. Например:Сериализовать карту [String, Any] в JSON, где Any включает BigDecimal

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, кажется, разорвать его. Как это сделать?

+0

Mapping 'Any' обычно (очень) плохая идея – cchantep

ответ

0

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

Таким образом, использование BigDecimal(1) (Scala BigDecimal)