我正在使用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#toString
和JSONArray#toString
的实现,因此不鼓励使用此API,如中所述:
JSONStringer
实现 JSONObject#toString 和 JSONArray#toString。大多数应用程序开发人员应直接使用这些方法,而忽略此API
这是一个很好的教程:Json 解析器
作为替代方案,您可以使用JSON序列化/反序列化库,如GSON或Jackson。
如何将Java对象转换为JSON(杰克逊(
写入
stringer.`object`()
请参阅 对于 Kotlin 中的关键字的 Java 标识符进行转义。