Следующий код, использующий 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 # 68 * 1016.* а также.