将 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 转换为表单的 ListString


    "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】:

私有列表> map_string;

你需要传递的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>>的主要内容,如果未能解决你的问题,请参考以下文章

优化 JSON 到 Typescript 映射

将 DATA 映射到 jqGrid

C++里怎样用map将枚举类转换到string类

如何将可映射数组转换为 JSON?

java 中json.parsearray怎么将结果装换成list<map<string,string>>

使用 Java8 流过滤 Map 的键后映射到列表