如何使用circe-yaml输出没有类型标签的数字?

时间:2019-05-29 09:21:43

标签: scala yaml circe

以下使用circe-yaml的代码产生以下输出。虽然输出正确,但它不是很好。就我而言,预期输出将由人类读取并进一步编辑,因此我希望使其尽可能自然。

如何配置Circe-YAML(或它使用的SnakeYAML),使其输出没有!!int tag的数字? 10001000.0都是我可接受的表示形式,!!int '1000.0'不是。

import io.circe._
import io.circe.syntax._
import io.circe.generic.auto._

object Main extends App {
  case class Data(x: Double, y: Double)

  val foo = Seq(
    Data(0.0000001, 100000000),
    Data(0.1234567891234569, 1000)
  )

  val json = foo.asJson

  val printer = yaml.Printer.spaces2
  val yamlString = printer.pretty(json)

  println(yamlString)
}
- x: 1.0E-7
  y: !!int '1.0E8'
- x: 0.1234567891234569
  y: !!int '1000.0'

注意:我也是在Circe-yaml issue #68中写的。

0 个答案:

没有答案