LinkedHashMap的<串,对象>

时间:2015-11-05 18:03:01

标签: java hashmap hashset linkedhashmap

我需要指导来迭代LinkedHashMap以及值

{"8":{"Name":"test","city":"ny"}, "9":{"Name":"test","city":"ny"}}

我可以将密钥显示为8,将值显示为{"Name":"test","city":"ny"}

但是我试图在关键Name中显示city8作为键值。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

您的数据看起来像JSON所以也许您正在寻找使用JSON解析器的解决方案 例如,使用org.json包,您的代码可能如下所示:

String jsonStr =  "{\"8\":{\"Name\":\"test1\",\"city\":\"ny1\"},"
                + " \"9\":{\"Name\":\"test2\",\"city\":\"ny2\"}}";

JSONObject parent = new JSONObject(jsonStr);

for (Object key : parent.keySet()){
    JSONObject childObject = parent.getJSONObject(key.toString());

    System.out.println("-----------");
    System.out.println(childObject);
    System.out.println("Name = "+childObject.get("Name"));
    System.out.println("city = "+childObject.get("city"));
}

输出:

-----------
{"city":"ny1","Name":"test1"}
Name = test1
city = ny1
-----------
{"city":"ny2","Name":"test2"}
Name = test2
city = ny2

答案 1 :(得分:0)

鉴于你的Hashmap的值只是一个普通的String,你可以使用它:

LinkedHashMap<String, Object> linkedHashMap = new LinkedHashMap<String, Object>();
linkedHashMap.put("8", "{\"Name\":\"test\",\"city\":\"ny\"}");

String value = (String)linkedHashMap.get("8");
String split[] = value.split("\"");

System.out.println(split[3]);
System.out.println(split[7]);