我一直在玩 Kotlinx.serialisation。我一直在尝试找到一种快速的方法来使用 Kotlinx.serialisation 创建一个简单的 JSON(主要是为了发送它),并且代码混乱最少。
对于一个简单的字符串,例如:
{"Album": "Foxtrot", "Year": 1972}
我一直在做的是这样的:
val str:String = Json.stringify(mapOf(
"Album" to JsonPrimitive("Foxtrot"),
"Year" to JsonPrimitive(1972)))
这远非美好。我的元素大多是原始的,所以我希望我有类似的东西:
val str:String = Json.stringify(mapOf(
"Album" to "Sergeant Pepper",
"Year" to 1967))
此外,我很高兴有一个嵌套 JSON 的解决方案。就像是:
Json.stringify(JsonObject("Movies", JsonArray(
JsonObject("Name" to "Johnny English 3", "Rate" to 8),
JsonObject("Name" to "Grease", "Rate" to 1))))
那会产生:
{
"Movies": [
{
"Name":"Johnny English 3",
"Rate":8
},
{
"Name":"Grease",
"Rate":1
}
]
}
(不一定美化,最好不要)
有这样的吗?
注意:使用序列化程序很重要,而不是直接字符串,例如
"""{"Name":$name, "Val": $year}"""
因为连接字符串是不安全的。任何非法字符都可能分解 JSON!我不想处理转义非法字符:-(
谢谢