java 获取json字符串所有key和value
时间: 2024-01-30 09:01:52 浏览: 195
好的,以下是 Java 代码示例来获取 JSON 字符串的所有 key 和 value:
```java
import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JsonUtil {
public static void main(String[] args) throws ParseException {
String jsonStr = "{\"name\":\"John\", \"age\":30, \"car\":null, \"hobbies\":[\"reading\",\"music\"]}";
JSONObject jsonObj = (JSONObject) new JSONParser().parse(jsonStr);
JSONObject result = new JSONObject();
getKeysAndValues(jsonObj, result);
System.out.println(result.toJSONString());
}
private static void getKeysAndValues(JSONObject jsonObj, JSONObject result) {
for (Object key : jsonObj.keySet()) {
Object value = jsonObj.get(key);
result.put(key, value);
if (value instanceof JSONObject) {
getKeysAndValues((JSONObject) value, result);
} else if (value instanceof JSONArray) {
getKeysAndValuesFromJsonArray((JSONArray) value, result);
}
}
}
private static void getKeysAndValuesFromJsonArray(JSONArray jsonArray, JSONObject result) {
for (Object obj : jsonArray) {
if (obj instanceof JSONObject) {
getKeysAndValues((JSONObject) obj, result);
} else if (obj instanceof JSONArray) {
getKeysAndValuesFromJsonArray((JSONArray) obj, result);
}
}
}
}
```
这个示例使用了 JSON.simple 库来解析 JSON 字符串。它递归遍历 JSON 对象和数组,并将所有 key 和 value 存储在一个新的 JSONObject 中。你可以根据你的需要修改这个示例,比如将 JSONObject 替换成 Map,等等。注意,这个示例假设 JSON 中没有循环引用,否则会进入死循环。
阅读全文
相关推荐















