如何在Kotlin本机上通过Kotlinx序列化创建嵌套JSON

时间:2019-02-06 09:03:43

标签: json kotlin kotlin-native kotlin-multiplatform kotlinx.serialisation

我通过Kotlin多平台创建了一个共享库,并使用Kotlin Serialization库进行序列化和反序列化,我在项目上实现了Graph QL,并在struct下面使用了

{
 "operationName":"Operation",
 "query":"query Operation($id: ID){rres: Cards(id: $id){id}}",
 "variables":{"id": 1}
}

为了与API通信,现在我遇到一个问题,我应该在Json的{​​{1}}中将Object填充为variables,但我没有当我将Kotlinx.Serialization填充为String且varibales成为我的例外时,找不到解决方法。

如何通过Kotlinx.Serialization创建嵌套的Json?

2 个答案:

答案 0 :(得分:0)

您需要为嵌套的Json对象创建一个类,并使用@Serializable对其进行注释

@Serializable
class Data(
    val operationName: String,
    val query: String,
    val variables: Variables
) {
    @Serializable
    class Variables(val id: Int)
}

答案 1 :(得分:0)

您可能想在这里看看。我认为该线程正好解决了将对象存储为嵌套在另一个Json中的Json字符串的问题。

https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc-tags.md