Java 如何将下面的字符串转换为地图列表?

Java 如何将下面的字符串转换为地图列表?,java,string,list,dictionary,Java,String,List,Dictionary,如何将下面的字符串转换为地图列表 [ {externalId=externalId_2, externalIdDocId=abc, partyRoleExternalIdType=type_extId }, {externalId=externalId_3, externalIdDocId=xyz, partyRoleExternalIdType=type_extId2 } ] 我已尝试将字符串转换为字符串列表 List

如何将下面的字符串转换为地图列表

[
    {externalId=externalId_2, 
    externalIdDocId=abc, 
    partyRoleExternalIdType=type_extId
    }, 
    {externalId=externalId_3, 
    externalIdDocId=xyz, 
    partyRoleExternalIdType=type_extId2
    }
]
我已尝试将字符串转换为字符串列表

List<String> externalIdlist = (List<String>) gson.fromJson(cbExternalIds, List.class);
然后将每个字符串逐个转换为映射

Map<String, String> externalIdMap = gson.fromJson(gson.toJson(externalIdlist.get(i)), Map.class);

这是可行的,但是有更好的解决方案吗?

下面的代码片段可以满足需要。我假设您的预期输出是List试试这个

HashMap<String,Object> result = new ObjectMapper().readValue(jsonString.replaceAll("=",":"), HashMap.class);
首先,您必须通过将th=chars替换为:将字符串转换为正确的Json,并使用ObjectMapper将其转换为HashMap类对象


ObjectMapper将Json解析为特定类对象最简单的方法是使用如下字符串方法手动解析:

用replaceAll卸下[和] 使用Split将剩余的标记拆分为对象标记, 删除每个标记{和},然后像步骤2中那样使用split拆分其参数,然后使用split=、split up创建参数键值对。从每一对中,您可以获得作为第二个参数的值,或者干脆放弃键。 现在,您有了带有参数数组的数组,您可以从中手动创建对象

MyObject obj=新的MyObject; obj.setExternalIdtokens[0]; 对象setexternalIdDocIdtokens[1]; 对象setpartyRoleExternalIdTypetokens[2];

最后,手动创建地图或阵列并添加创建的对象

如果要使用GSon、Jackson或其他,则必须首先使用3个参数创建对象模型,然后使用MyObject[]myobjectarray=GSon.fromJsonmyJson,MyObject[].class调用解析器

测试并得到以下结果-


这将适用于您的用例。

请检查并编辑您的问题您尝试过什么吗?@jens我已经用我尝试过的内容更新了问题您可以一步完成。检查我的Ans,使用Gson的那个。试试看,这不是答案。解释你做了什么以及为什么。
HashMap<String,Object> result = new ObjectMapper().readValue(jsonString.replaceAll("=",":"), HashMap.class);
new Gson().fromJson(inputString, new ArrayList<Map<String, String>>().getClass())