链接哈希图<String,Object>

Linkedhashmap<String,Object>

我需要指导来迭代具有以下值的 LinkedHashMap

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

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

但我正在尝试将 Namecity 显示为键 8 中的键值。

感谢任何帮助。

鉴于你的 Hashmap 值只是一个普通的字符串,那么你可以使用这个:

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]);

您的数据看起来像 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