java多层嵌套json如何转map
时间: 2024-01-24 22:14:22 浏览: 97
可以使用递归的方式将多层嵌套的JSON转换为Map。下面是一个示例代码:
```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 Map<String, Object> convertJsonToMap(String json) {
Type type = new TypeToken<Map<String, Object>>(){}.getType();
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(json, type);
Map<String, Object> result = new HashMap<>();
convertMap(map, result, "");
return result;
}
private static void convertMap(Map<String, Object> map, Map<String, Object> result, String prefix) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof Map) {
convertMap((Map<String, Object>) value, result, prefix + key + ".");
} else {
result.put(prefix + key, value);
}
}
}
}
```
使用上述代码,你可以将多层嵌套的JSON字符串转换为一个单层的Map对象。你只需要调用`convertJsonToMap`方法,并传入你的JSON字符串作为参数。返回的结果将是一个包含所有键值对的Map对象。
阅读全文