首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java -如何将字符串解析回Map列表

java -如何将字符串解析回Map列表
EN

Stack Overflow用户
提问于 2016-10-12 05:11:55
回答 2查看 487关注 0票数 0

我有一个具有这种格式的字符串(它是分配给String的Map列表)

代码语言:javascript
复制
[{code=1, data=Male} , {code=2, data=Female}]

。。如何将上面的字符串解析回映射列表。不使用任何String.split函数(因为它容易出错)

这是我试过的密码..。但是用分裂函数..。

代码语言:javascript
复制
if(!string.equals("")){
                String[] listArray = string.split(DELIMITER);
                for (int i=0;i<listArray.length;i++) {
                    String val=listArray[i];
                    val = val.replaceAll("[\\{\\}]", "");

                    //Gets the value from DATA key
                    if(val.split(EQDELIMITER)[0].trim().equalsIgnoreCase("DATA")){
                        try{
                            map.put("DATA", val.split(EQDELIMITER)[1]);
                        }catch(IndexOutOfBoundsException e){
                            map.put("DATA", "");
                        }
                    }
                    //Gets the value from CODE key
                    if(val.split(EQDELIMITER)[0].trim().equalsIgnoreCase("CODE")){

                        try{
                            map.put("CODE", val.split(EQDELIMITER)[1]);
                        }catch(IndexOutOfBoundsException e){
                            map.put("CODE", "");
                        }

                    }


                    if (map != null && map.size() >= 2) {
                        //add map to codeList
                        codeList.add(map);
                        map = new HashMap<String,Object>();
                    }
                }
            }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-12 05:15:52

如果您足够灵活地使用库,那么使用google的GSON

代码语言:javascript
复制
Map map = gson.fromJson(jsonString, Map.class);

由于您需要地图列表,所以您也可以使用TypeToken

代码语言:javascript
复制
List<Map<E,V>> list= new Gson().fromJson(jsonString, 
                           new TypeToken<List<Map<E, V>>() {}.getType());

用实际类型替换E,V。

票数 0
EN

Stack Overflow用户

发布于 2016-10-12 05:25:32

为什么你不能去找object .(org.codehaus.jackson.map.ObjectMapper)

会是这样的..。

代码语言:javascript
复制
ObjectMapper mapper= new ObjectMapper();
Map<Integer,String> map = mapper.readValue(yourString,org.codehaus.jackson.type.TypeReference.TypeReference<Map<Integer,String>>() {
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39990924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档