2014-03-25 62 views
1

我有一个外部解析列表类型是JSON数组,这确实呼叫转换JSON数组到散列映射<串,对象>

list.toString() 

给我此:

[{name=prop1, content=<something>},{name=prop2, content=<something>}] 

的内容可以是任何东西,一个数组,字符串,一个int ... 所以我想是JSON数组的东西映射像

HashMap<String,Object> converted; 

这将允许我这样做:

converted.get("prop1"); //this will give me the <something> 

我该怎么做?

+2

小心,那不是JSON。 –

+0

我相信你不能直接做...通过解析器,创建POJO或直接解析JSON – fge

+0

它是一个json数组,它怎么不是json? – Phate

回答

2

使用JSON解析器试试这个。从这里获取JSON库json.simple

Map<String, Object> map = new HashMap<>(); 

JSONParser parser = new JSONParser(); 

try { 

    Object obj = parser.parse(list); 

    JSONArray jsonArray = (JSONArray)obj; 

    Iterator<JSONObject> iterator = jsonArray.iterator(); 
    while (iterator.hasNext()) { 
     JSONObject jsonObj = iterator.next(); 
     String name = (String) jsonObject.get("name"); 
     Object content = (Object) jsonObject.get("content"); 
     map.put(name, content); 
    } 
} catch (ParseException p) { } 
+0

不..我忘了添加解析代码...现在我编辑了我的代码 – Arjit