无法在 Kotlin 中的 JSONStringer 类上调用 object() 方法



我正在使用org.json.JSONStringer类为我的Android应用程序生成JSON字符串。

fun createJSONString(stringer:JSONStringer) {
stringer.object()
//write some stuff
stringer.endObject()
}

但是,我无法调用此类的object()方法来创建新的 JSON 对象,因为object是一个 kotlin 属性。因此,Android 工作室告诉我,对象不允许使用构造函数。我该怎么做才能强制Android Studio使用JSONStringer的object()方法?

为什么不使用JSONObject类,示例来往 JSONObject:

val jsonStr = "{"age":33,"messages":["msg 1","msg 2"],"name":"jim"}"
val jObj = JSONObject(jsonStr)
val str = jObj.toString()

由于JSONStringer只是JSONObject#toStringJSONArray#toString的实现,因此不鼓励使用此API,如中所述:

JSONStringer

实现 JSONObject#toString 和 JSONArray#toString。大多数应用程序开发人员应直接使用这些方法,而忽略此API

这是一个很好的教程:Json 解析器

作为替代方案,您可以使用JSON序列化/反序列化库,如GSON或Jackson。

如何将Java对象转换为JSON(杰克逊(

写入

stringer.`object`()

请参阅 对于 Kotlin 中的关键字的 Java 标识符进行转义。

最新更新