Как вывести числа без тега type с circe-yaml? - PullRequest
2 голосов
/ 29 мая 2019

Следующий код, использующий circe-yaml, производит вывод ниже.Хотя вывод правильный, это не очень приятно.В моем случае вывод должен быть прочитан и дополнительно отредактирован людьми, поэтому я бы хотел, чтобы он был максимально естественным.

Как я могу настроить Circe-YAML (или SnakeYAML , который используется им), чтобы он выводил числа без !!int tag1000, и 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 # 68 * 1016.* а также.

...