以下使用circe-yaml的代码产生以下输出。虽然输出正确,但它不是很好。就我而言,预期输出将由人类读取并进一步编辑,因此我希望使其尽可能自然。
如何配置Circe-YAML(或它使用的SnakeYAML),使其输出没有!!int tag
的数字? 1000
和1000.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中写的。