首页 > 编程知识 正文

java遍历json数组取值,遍历jsonArray

时间:2023-05-03 08:27:56 阅读:201037 作者:177

更改

JSONObject objects = getArray.getJSONArray(i);

JSONObject objects = getArray.getJSONObject(i);

或者

JSONObject objects = getArray.optJSONObject(i);

取决于您使用的是JSON到/来自Java的库。 (看起来getArray.length() - 1将为您工作。)

然后,要访问“对象” 2699982213855798272中的字符串元素,请按元素名称将其取出。

String a = objects.get("A");

如果需要getArray.length() - 1中的元素名称,则可以使用静态实用程序方法JSONObject.getNames(JSONObject)来完成。

String[] elementNames = JSONObject.getNames(objects);

“获取第一个元素的值和最后一个元素的值。”

如果“元素”是指数组中的组件,请注意第一个组件位于索引0,最后一个组件位于索引getArray.length() - 1。

我想遍历数组中的对象并获取其组件和值。 在我的示例中,第一个对象具有3个成分,scond具有5个成分,第三个具有4个成分。 我想遍历它们中的每一个并获取其组件名称和值。

以下代码正是这样做的。

import org.json.JSONArray;

import org.json.JSONObject;

public class Foo

{

public static void main(String[] args) throws Exception

{

String jsonInput = "{"JObjects":{"JArray1":[{"A":"a","B":"b","C":"c"},{"A":"a1","B":"b2","C":"c3","D":"d4","E":"e5"},{"A":"aa","B":"bb","C":"cc","D":"dd"}]}}";

// "I want to iterate though the objects in the array..."

JSONObject outerObject = new JSONObject(jsonInput);

JSONObject innerObject = outerObject.getJSONObject("JObjects");

JSONArray jsonArray = innerObject.getJSONArray("JArray1");

for (int i = 0, size = jsonArray.length(); i < size; i++)

{

JSONObject objectInArray = jsonArray.getJSONObject(i);

// "...and get thier component and thier value."

String[] elementNames = JSONObject.getNames(objectInArray);

System.out.printf("%d ELEMENTS IN CURRENT OBJECT:n", elementNames.length);

for (String elementName : elementNames)

{

String value = objectInArray.getString(elementName);

System.out.printf("name=%s, value=%sn", elementName, value);

}

System.out.println();

}

}

}

/*

OUTPUT:

3 ELEMENTS IN CURRENT OBJECT:

name=A, value=a

name=B, value=b

name=C, value=c

5 ELEMENTS IN CURRENT OBJECT:

name=D, value=d4

name=E, value=e5

name=A, value=a1

name=B, value=b2

name=C, value=c3

4 ELEMENTS IN CURRENT OBJECT:

name=D, value=dd

name=A, value=aa

name=B, value=bb

name=C, value=cc

*/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。