8

I want to print json to string in one line.


    case class Data(e: Option[String])

    object Data {
      implicit val dEncoder = deriveDecoder[Data]
      implicit val dDecoder = deriveEncoder[Data]
    }

    case class Random(a: String,b: String, c: Int,d: Data)

    object Random {
      implicit val rEncoder = deriveDecoder[Random]
      implicit val rDecoder = deriveEncoder[Random]
    }

val res = Random("a","b", 1, Data("e"))

when i do res.asJson.toString, i get: { "a": "a", "b": "b", "c":1, "d": { "e": "e" } }

but i want it to be printed in one line without \n as using circe.

**{"a": "a","b": "b", "c": 1,d:{"e": "e"}}**

Avenger
  • 793
  • 11
  • 31

1 Answers1

12

If you don't mind stripping other unnecessary whitespace characters:

@ res.asJson.noSpaces
res9: String = "{\"a\":\"a\",\"b\":\"b\",\"c\":1,\"d\":{\"e\":\"e\"}}"

@ println(res.asJson.noSpaces)
{"a":"a","b":"b","c":1,"d":{"e":"e"}}
Mateusz Kubuszok
  • 24,995
  • 4
  • 42
  • 64