Android 无法对Kotlin中的JSONStringer类调用object()方法

Android 无法对Kotlin中的JSONStringer类调用object()方法,android,json,android-studio,kotlin,Android,Json,Android Studio,Kotlin,我正在使用该类为我的Android应用程序生成JSON字符串 趣味CreateJSonStringString:JSONStringer{ 斯特林格物体 //写点东西 stringer.endObject } 但是,我不能调用此类的方法来创建新的JSON对象,因为该对象是kotlin属性。因此,AndroidStudio告诉我对象不允许使用构造函数。我可以做些什么来强制Android Studio使用JSONString的object方法?为什么不使用JSONObject类,例如从JSONObj

我正在使用该类为我的Android应用程序生成JSON字符串

趣味CreateJSonStringString:JSONStringer{ 斯特林格物体 //写点东西 stringer.endObject } 但是,我不能调用此类的方法来创建新的JSON对象,因为该对象是kotlin属性。因此,AndroidStudio告诉我对象不允许使用构造函数。我可以做些什么来强制Android Studio使用JSONString的object方法?

为什么不使用JSONObject类,例如从JSONObject到JSONObject:

    val jsonStr = "{\"age\":33,\"messages\":[\"msg 1\",\"msg 2\"],\"name\":\"jim\"}"
    val jObj = JSONObject(jsonStr)
    val str = jObj.toString()
由于JSONString只是JSONObjecttoString和JSONArraytoString的一个实现,因此也不鼓励使用此API,如中所述:

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

这里有一个很好的教程:

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


请参阅。

我很高兴,我在很多公司项目中都使用Gson,但Jackson在我的个人项目中非常强大,如果您使用Spring it支持Jackson开箱即用,唯一的区别是,如果您来自Gson,Jackson的许多功能可能会让您感到难以承受,所以请尝试一下,也可以查看Moshi library
stringer.`object`()