Pretty print aKotlinJson Serializable

9wbgstp7  于 2023-08-06  发布在  Kotlin
关注(0)|答案(1)|浏览(118)

如何打印一个KotlinSerializable类,使键在单独的行上格式化,而不是在一行上(默认值)?Json.encodeToString在一行上打印所有内容。我在kotlinx-serialization-json库中看到了prettyPrint文档,但JsonBuilder和JsonConfiguration有私有构造函数。
可序列化示例:

@kotlinx.serialization.Serializable
data class MyObject(
    val name: String,
    val age: Int
)

val myObject = MyObject(name = "hello", age = 2)
val string = Json.encodeToString(myObject)
print(string)

字符串
上面的打印{"name":"hello","age":2},但我希望所有内容都在单独的行上。

yv5phkfx

yv5phkfx1#

使用此选项给予访问JsonBuilder打印选项。

val prettyJson = Json { // this returns the JsonBuilder
    prettyPrint = true
    // optional: specify indent
    prettyPrintIndent = " "
}

val myObject = MyObject(name = "hello", age = 2)
val string = prettyJson.encodeToString(myObject)
print(string)

字符串
这将打印:

{
 "name": "hello",
 "age": 2
}

相关问题