多层json转换为map
时间: 2023-08-31 21:08:32 浏览: 107
你可以使用递归方法将多层的 JSON 转换为 Map。下面是一个示例代码,使用了 Gson 库来进行 JSON 解析:
```java
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;
public class JsonToMapConverter {
public static void main(String[] args) {
String jsonString = "{\"key1\":\"value1\",\"key2\":{\"subkey1\":\"subvalue1\",\"subkey2\":\"subvalue2\"}}";
Gson gson = new Gson();
Type type = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> map = gson.fromJson(jsonString, type);
Map<String, Object> resultMap = convertJsonToMap(map);
System.out.println(resultMap);
}
public static Map<String, Object> convertJsonToMap(Map<String, Object> jsonMap) {
Map<String, Object> resultMap = new HashMap<>();
for (String key : jsonMap.keySet()) {
Object value = jsonMap.get(key);
if (value instanceof Map) {
value = convertJsonToMap((Map<String, Object>) value);
}
resultMap.put(key, value);
}
return resultMap;
}
}
```
在这个示例中,首先使用 Gson 将 JSON 字符串解析为一个 `Map<String, Object>` 对象。然后,通过递归调用 `convertJsonToMap` 方法,将嵌套的 Map 转换为多层的 Map 对象。最后,输出转换后的结果。
请注意,这只是一个简单的示例,如果 JSON 结构更加复杂,可能需要进行更多的处理。
阅读全文