gpt4 book ai didi

kotlin - Java/Kotlin:解析JSON对象错误

转载 作者:行者123 更新时间:2023-12-02 13:23:16 25 4
gpt4 key购买 nike

我有一个可从API恢复的文本json,但无法对其进行解码,因为在json中,我只有一个对象,而没有几个:

{  
"address": "mickaelnanah@gmail.com",
"username": "mickaelnanah",
"domain": "gmail.com",
"md5Hash": "0f6082627bfdeb56a3792f52ce8f0cb8",
"validFormat": true,
"deliverable": true,
"fullInbox": false,
"hostExists": true,
"catchAll": false,
"disposable": false,
"free": true
}

我的代码:
val jsonObj = JSONObject(jSonString.substring(jSonString.indexOf("{"), jSonString.lastIndexOf("}") + 1))
val mail = Email(jsonObj.getJSONObject("deliverable") as String)
println(mail.email)

错误:

Exception in thread "main" org.json.JSONException: JSONObject["deliverable"] is not a JSONObject.



我了解错误,这是因为我没有对象的名称,如何直接获取字段?

已解决:
val jsonObj = JSONObject(jSonString.substring(jSonString.indexOf("{"), jSonString.lastIndexOf("}") + 1))

val mail: String = jsonObj.get("deliverable").toString()

最佳答案

由于您使用的键不会引用顶级JSON对象中的嵌套对象,因此您应该使用getJSONObject以外的方法来访问它们。

例如,对于deliverable字段,它是一个 bool(boolean) 值:

val deliverable: Boolean = jsonObj.getBoolean("deliverable")

或为 address字段输入一个字符串:
val address: String = jsonObj.getString("address")
getJSONObject的有效用例是当您有这样的嵌套对象时:
{
"nested": {
"foo": "bar"
}
}

例如,在这里您可以执行 jsonObj.getJSONObject("nested").getString("foo")

关于kotlin - Java/Kotlin:解析JSON对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50473906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com