gpt4 book ai didi

java - 使用 Java 解析嵌套 JSONArray

转载 作者:行者123 更新时间:2023-11-30 02:04:11 25 4
gpt4 key购买 nike

我有这个丑陋的 JSON 字符串,我需要获取 totalStars 在本例中为 500。我尝试了很多解决方案,但似乎都不起作用。

这是 JSON:

{
"code": 200,
"message": "success",
"data": [
[
{
"totalPosts": 42
}
],
[
{
"totalStars": 500
}
],
[
{
"followingCount": 1
}
],
[
{
"followerCount": 1
}
]
]
}

目前我正在尝试通过以下方式获取数据:

JSONObject jsonResult = new JSONObject(result);
JSONArray data = jsonResult.getJSONArray("data");
if(data != null) {
String[] names = new String[data.length()];
for(int i = 0 ; i < data.length() ; i++) {
names[i] = data.getString(i);

}
System.out.println(names);
}

JSONArray 数据包含正确的数据,但我似乎无法从中获取其他数据。

最佳答案

看起来您的数据是对象数组的数组,而不是字符串。你需要做这样的事情:

JSONObject jsonResult = new JSONObject(result);
JSONArray data = jsonResult.getJSONArray("data");
if(data != null) {
String[] names = new String[data.length()];
for(int i = 0 ; i < data.length() ; i++) {
JSONArray arr = data.getJSONArray(i);
dataObj = arr.getJSONObject(0)
Iterator<String> keys = dataObj.keys();
names[i] = dataObj.getString(keys.next())
}
System.out.println(names);
}

我在这个答案中可能有一些语法问题,但主要思想是你在处理对象数组时试图获取一个字符串(每个数据索引都是一个对象数组。它就是这样发生的每个这样的数组中只有一个对象)

关于java - 使用 Java 解析嵌套 JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51838836/

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