jsonarray遍历取key和value
时间: 2023-05-31 19:19:28 浏览: 1565
java JSONArray 遍历方式(2种)
### 回答1:
可以使用Java中的JSONArray类来遍历JSON数组,并使用JSONObject类来获取每个元素的键和值。
示例代码如下:
```
JSONArray jsonArray = new JSONArray("[{\"name\":\"张三\",\"age\":20},{\"name\":\"李四\",\"age\":25}]");
for (int i = ; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
System.out.println("name: " + name + ", age: " + age);
}
```
以上代码将输出:
```
name: 张三, age: 20
name: 李四, age: 25
```
其中,`jsonArray.getJSONObject(i)`方法用于获取数组中的第i个元素,返回一个JSONObject对象。然后,可以使用`getString()`和`getInt()`方法来获取该元素的键和值。
### 回答2:
在进行jsonarray的遍历时,获取其key和value可以通过以下步骤实现:
1. 首先,需要将jsonarray转换为java中的JSONArray对象,例如:
JSONArray jsonArray = new JSONArray(jsonArrayString);
其中,jsonArrayString是包含jsonarray的字符串。
2. 然后,可以使用for循环遍历jsonarray,例如:
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
String value = jsonObject.getString(key);
System.out.println("key: " + key + ", value: " + value);
}
}
在上述代码中,首先获取jsonarray中的第i个元素,然后将其转换为java中的JSONObject对象。接着,使用Iterator遍历该JSONObject对象的所有key,并通过getString方法获取对应的value。最后,通过输出语句输出该key和value的值。
需要注意的是,上述代码中的jsonArrayString需要保证是合法的jsonarray字符串,否则可能会抛出异常。另外,对于嵌套的jsonarray或jsonobject,需要使用递归的方式来进行遍历获取key和value。
### 回答3:
在Java中,我们可以使用JsonArray类来表示一个JSON数组对象。JsonArray类可以通过以下方式创建:
JsonArray jsonArr = new JsonArray();
然后我们可以使用add()方法向JsonArray对象中添加元素,该方法接受JsonElement类型的参数,其中JsonElement类是Json库中的一个基本类,用于表示不同类型的JSON元素,如JsonPrimitive、JsonObject等。下面是一个例子:
jsonArr.add(new JsonPrimitive("string"));
jsonArr.add(new JsonPrimitive(123));
jsonArr.add(new JsonObject());
我们可以使用JsonArray对象的size()方法获取数组中元素的数量,使用get(int index)方法获取索引为index的元素,例如:
System.out.println(jsonArr.size()); // 输出: 3
System.out.println(jsonArr.get(0)); // 输出: "string"
遍历JsonArray对象,获取其中的元素值以及对应的key值,可以通过以下方式实现:
for (int i = 0; i < jsonArr.size(); i++) {
JsonElement element = jsonArr.get(i);
if (element.isJsonPrimitive()) {
JsonPrimitive primitive = element.getAsJsonPrimitive();
System.out.println("key: " + i + ", value: " + primitive.getAsString());
} else if (element.isJsonObject()) {
JsonObject object = element.getAsJsonObject();
System.out.println("key: " + i + ", value: " + object.toString());
} else if (element.isJsonArray()) {
JsonArray array = element.getAsJsonArray();
System.out.println("key: " + i + ", value: " + array.toString());
} else if (element.isJsonNull()) {
System.out.println("key: " + i + ", value: null");
} else {
throw new IllegalStateException("Unknown JSON element type: " + element.getClass());
}
}
在上述代码中,我们使用isJsonPrimitive()、isJsonObject()、isJsonArray()和isJsonNull()方法来判断当前元素的类型,并使用getAsJsonPrimitive()、getAsJsonObject()、getAsJsonArray()和getAsString()等方法获取元素的值或者key值。如果当前元素的类型未知,则抛出一个异常。
阅读全文