将 JSON 映射到 List<Map<<String, Object>>
Posted
技术标签:
【中文标题】将 JSON 映射到 List<Map<<String, Object>>【英文标题】:Map JSON To List<Map<<String, Object>> 【发布时间】:2017-11-25 16:13:57 【问题描述】:我有一个 JSON 格式
[
"id" : "a01",
"name" : "random1",
"val" : "random2"
,
"id" : "a03",
"name" : "random3",
"val" : "random4"
]
我需要将它映射到一个 List
持有各种 Map
对象。如何实现?
即使我能够将此 JSON 转换为表单的 List
或 String
"id" : "a01",
"name" : "random1",
"val" : "random2"
然后我有一种方法可以将每个 String
转换为 Map
。
【问题讨论】:
使用杰克逊数据绑定?你可以使用番石榴来实现它github.com/google/gson 【参考方案1】:您需要将TypeReference
传递给readValue
,并使用所需的结果类型:
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> data = mapper.readValue(json, new TypeReference<List<Map<String, Object>>>());
【讨论】:
【参考方案2】:使用指定类型的 gson 转换为地图列表:
Gson gson = new Gson();
Type resultType = new TypeToken<List<Map<String, Object>>>().getType();
List<Map<String, Object>> result = gson.fromJson(json, resultType);
【讨论】:
【参考方案3】:私有列表
你需要传递的Json:-
"map_formula" : [
"A+" : "if(price<400),\"40000\",0",
"B" : "",
"c" : "",
"d" : "",
"e" : ""
,
"poor" : "value for poor",
"good" : "300",
"average" : "300",
"excellent" : "300"
]
【讨论】:
以上是关于将 JSON 映射到 List<Map<<String, Object>>的主要内容,如果未能解决你的问题,请参考以下文章