java获取JSONObject中的所有key
时间: 2023-09-09 21:07:55 浏览: 249
可以使用 `JSONObject` 类的 `keys()` 方法获取所有 key 的集合,然后遍历集合即可获取每个 key。
示例代码:
```java
import org.json.JSONObject;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject("{\"name\":\"John\", \"age\":30, \"car\":null}");
Iterator<String> keys = jsonObject.keys();
while (keys.hasNext()) {
String key = keys.next();
System.out.println(key);
}
}
}
```
输出结果:
```
name
age
car
```
相关问题
java获取JSONObject中所有匹配正则的JSONObject
在Java中,如果你想从一个JSONObject中获取所有匹配特定正则表达式的JSONObject,你需要首先遍历整个JSONObject,然后检查每个键值对是否满足正则表达式的匹配条件。如果满足,则将对应的JSONObject提取出来。这是一个基本步骤的示例:
```java
import org.json.*;
public class Main {
public static void main(String[] args) {
// 示例JSONObject
JSONObject jsonObject = new JSONObject(
"{\"parent\":{\"child1\":{\"info\":\"value1\"},\"child2\":{\"info\":\"value2\"}}," +
"\"another\":{\"unrelated\":\"value3\"}}");
// 定义正则表达式
String regex = "(?i)^child\\d+$"; // 匹配"child1", "child2"
// 遍历JSONObject
for (Object key : jsonObject.keySet()) {
String keyValue = key.toString();
if (Pattern.matches(regex, keyValue)) { // 检查键名是否匹配正则
JSONObject nestedJsonObject = jsonObject.getJSONObject(key); // 提取JSONObject
System.out.println(nestedJsonObject.toString()); // 打印提取的JSONObject
}
}
}
}
```
在这个例子中,正则表达式"(?i)^child\\d+$"用于匹配以"child"开头,后面跟着一个或多个数字的键。注意,`(?i)`表示忽略大小写。
java 获取JSONObject的key和value
可以使用 `JSONObject` 的 `keys()` 方法获取所有的 key,然后遍历获取每个 key 对应的 value。
示例代码如下:
```java
import org.json.JSONObject;
import java.util.Iterator;
public class Main {
public static void main(String[] args) {
JSONObject jsonObject = new JSONObject("{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}");
// 获取所有的key
Iterator<String> keys = jsonObject.keys();
while(keys.hasNext()) {
String key = keys.next();
Object value = jsonObject.get(key);
System.out.println("key: " + key + ", value: " + value);
}
}
}
```
输出结果:
```
key: name, value: John
key: age, value: 30
key: city, value: New York
```
阅读全文