我试图弄清楚如何访问嵌套的JSON属性,第一个元素。基本上,我的数据如下所示:
const url = process.env.url || false
if(!url) {
console.log('error..');
process.exit(0)
}
...
在我的代码中,我正在做类似的事情:
{
"message": "Error scenario",
"errors": {
"error_one": "error_one_message",
"error_two": "error_two"
}
}
我应该在代码中进行哪些更改,以使变量// it is an instance of HttpException
val message = JsonParser().parse(it.response().errorBody()?.string())
.asJsonOject["message"]
.asString
的值为message
答案 0 :(得分:1)
我认为这种方式可行
val message = JsonParser().parse(it.response().errorBody()?.string())
.asJsonObject["errors"]["error_one"]
.asString
但最好在这里使用像Gson这样的转换库是GitHub Link
答案 1 :(得分:1)
尝试一下?
val obj = JSONObject("ur Json string")
val error1 = obj.getJSONObject("errors").getString("error_one")
答案 2 :(得分:1)
//the whole json object
val baseJsonResponse = JSONObject("JSON response")
//the error json object
val errorObject = baseJsonResponse.getJSONObject("error")
//get the string
val location = errorObject.getString("error_one")
修改: 由于您需要基础对象的第一个元素,因此需要遍历键以获得第一个键。在Java中为:
String keyForFirstJsonbject = errorObject.keySet().iterator().next();
在Kotlin中我猜测是:
val keyForFirstJsonbject = errorObject.keys.elementAt(0)
然后结束:
//get the string
val location = errorObject.getString(keyForFirstJsonbject)