当json属性是一个没有双引号的字符串时,Gson不会抱怨(Kotlin/Android)

jchrr9hc  于 2022-11-06  发布在  Kotlin
关注(0)|答案(1)|浏览(198)

通过一些数据库操作,我最终得到了一个字符串,根据所有人的说法,它应该是无效的JSON,即:

{
    "x": MOVIESTAR
}

当反序列化上述内容时,我预计应用程序中会出现异常,但我意识到Gson automagic在解析为JsonObject时将this解析为字符串,例如:

GsonBuilder()
.create()
.fromJson("{\"x\":MOVIESTAR}", com.google.gson.JsonObject::class.java)

如果我然后.toString()上面的新的JSON是很好的格式。
虽然它确实对我的一个用例有帮助,但这种行为很奇怪,也很出乎意料。
在创建GsonBuilder()时,有没有办法控制这种情况?
我在Android上使用com.google.code.gson:gson:2.9.0,我的代码是在Kotlin中(我怀疑最后两个事实是否重要,但JIC)。

6za6bjd0

6za6bjd01#

var jsonObject =  GsonBuilder()
        .create()
        .fromJson("{\"x\":MOVIESTAR}",JsonObject::class.java)
 Log.e("TAG",""+jsonObject.get("x"))

@zaitsman请在上面它已经作为jsonObject返回,您可以使用它们的键来获取,上面的代码输出是字符串值“MOVIESTAR”

相关问题