有更好的方式处理kotlinx序列化吗?

时间:2019-01-25 11:32:19

标签: android kotlin kotlin-multiplatform kotlinx.serialisation

我在Kotlin本机项目上使用kotlinx.serialization,为我的模型定义了Super class,所有模型都从此扩展。 我定义了一个名为function的{​​{1}}来序列化模型中所有类模型都具有的变量和字段。

toJSON()

然后我创建了一个子类

@Serializable
open class Model {
   fun toJSON(): String = JSON.stringify(this);
}

但是当我调用class Me : Model() { var name:String = "Jack"; } 时,IDE会向我发出警告:

  

此声明是实验性的,必须使用“ @ kotlinx.serialization.ImplicitReflectionSerializer”或“ @UseExperimental(kotlinx.serialization.ImplicitReflectionSerializer :: class)”标记

我注意了,在不起作用时使用了JSON.stringify(this)注释。 我的问题在哪里?

1 个答案:

答案 0 :(得分:1)

对此进行了讨论here。这是您正在使用的特定过载,仍在试验中。因此,您的选择要么是使用其他重载(它需要一个序列化器),要么使用错误消息中提到的注释之一。如果您查看我链接的问题的答案(及其后的评论),您会发现它涉及使用#!/bin/bash a="12 11 45 20 67" abc=' ' read -r -a arr <<< "$a" b=0 for i in ${arr[@]}; do let b+=$i done echo "Total: $b" 以及应在何处使用。