【问题标题】:Linkedhashmap<String,Object> [closed]Linkedhashmap<String,Object> [关闭]
【发布时间】:2015-11-05 18:03:01
【问题描述】:

我需要指导来遍历具有以下值的 LinkedHashMap

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

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

但我试图将 Namecity 显示为键 8 内的键值。

任何帮助表示赞赏。

【问题讨论】:

  • 你的努力在哪里?
  • 我不明白你的问题。
  • 你可能需要对你的价值使用一些吸气剂,比如getName
  • value字段中的Object是什么类型的?数据是如何进入 LinkedHashMap 的?
  • 您的数据看起来像 JSON。您究竟是如何创建该地图的?它存储什么类型的对象?

标签: java hashmap hashset linkedhashmap


【解决方案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

【讨论】:

  • 谢谢哥们!!这有帮助
【解决方案2】:

鉴于您的 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]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2016-11-16
    相关资源
    最近更新 更多