我希望将JSON响应转换为Map,使用GSON库获得所需输出的最佳方法是什么。
我尝试这个,我只得到ArrayList值。
Map<String, Object> map = gson.fromJson(response, HashMap.class);
ArrayList responseOptions = (ArrayList) map.get("data");产出:
[{language=Java, value=8}, {language=Ruby, value=7}, {language=Python, value=7}]示例JSON响应
{
"data":[
{
"language":"Java","value":"8"
},
{
"language":"Ruby","value":"7"
},
{
"language":"Python","value":"6"
}]
}映射{Java=8、Ruby=7、Python=6}中的期望输出
发布于 2022-10-21 06:22:11
测试代码
String str = "{\n" +
" \"data\":[\n" +
" {\n" +
" \"language\":\"Java\",\"value\":\"8\"\n" +
" },\n" +
" {\n" +
" \"language\":\"Ruby\",\"value\":\"7\"\n" +
" },\n" +
" {\n" +
" \"language\":\"Python\",\"value\":\"6\"\n" +
" }]\n" +
"}";
Map map = new Gson().fromJson(str, Map.class);
List data = (List) map.get("data");
Map<String, String> result = new HashMap<>();
for (Object o : data) {
Map m = (Map) o;
result.put(m.get("language").toString(), m.get("value").toString());
}
System.out.println(result);测试结果

https://stackoverflow.com/questions/74149424
复制相似问题