我想解析这个JSON对象:
"{
\"Rao\":[\"Q7293658\",\"\",\"Q7293657\",\"Q12953055\",\"Q3531237\",\"Q4178159\",\"Q1138810\",\"Q579515\",\"Q3365064\",\"Q7293664\",\"Q1133815\"],
\"Hani Durzy\":[\"\"],
\"Louise\":[\"\",\"Q1660645\",\"Q130413\",\"Q3215140\",\"Q152779\",\"Q233203\",\"Q7871343\",\"Q232402\",\"Q82547\",\"Q286488\",\"Q156723\",\"Q3263649\",\"Q456386\",\"Q233192\",\"Q14714149\",\"Q12125864\",\"Q57669\",\"Q168667\",\"Q141410\",\"Q166028\"],
\"Reyna\":[\"Q7573462\",\"Q2892895\",\"Q363257\",\"Q151944\",\"Q3740321\",\"Q2857439\",\"Q1453358\",\"Q7319529\",\"Q733716\",\"Q16151941\",\"Q7159448\",\"Q5484172\",\"Q6074271\",\"Q1753185\",\"Q7319532\",\"Q5171205\",\"Q3183869\",\"Q1818527\",\"Q251862\",\"Q3840414\",\"Q5271282\",\"Q5606181\"]
}"
并使用该数据生成Map< String,HashSet< String>>.
基本上我想要逆转this程序.
更新
File f = new File("/home/matthias/Workbench/SUTD/nytimes_corpus/wdtk-parent/wdtk-examples/JSON_Output/user.json");
String jsonTxt = null;
if (f.exists())
{
InputStream is = new FileInputStream("/home/matthias/Workbench/SUTD/nytimes_corpus/wdtk-parent/wdtk-examples/JSON_Output/user.json");
jsonTxt = IOUtils.toString(is);
}
//System.out.println(jsonTxt);
Gson gson=new Gson();
Map> map = new HashMap>();
map=(Map>) gson.fromJson(jsonTxt, map.getClass());
\\ // ! PRINT IT ! // \\ // \\ // \\ // \\ // \\ // \ for (Map.Entry> entry : map.entrySet())
{
System.out.println(entry.getKey() " : " Arrays.deepToString(map.entrySet().toArray()) );
}
解决方法:
Gson gson = new Gson();
String json = "";
Map> map = new HashMap>();
map = (Map>) gson.fromJson(json, map.getClass());
更新:
使用TypeToken
Type type = new TypeToken>>(){}.getType();
map = (Map>) gson.fromJson(json, type);
或者你可以解析它……
>创建一个JSONObject的对象
>创建HashMap的对象
>迭代jsonObj.keys()并为每个键获取值
jsonObj.getString(键).
>将它放在map.put(key,value)中.来源:http://www.icode9.com/content-1-198551.html