Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从映射中获取键值对_Java_Arrays_Json_Hashmap - Fatal编程技术网

Java 从映射中获取键值对

Java 从映射中获取键值对,java,arrays,json,hashmap,Java,Arrays,Json,Hashmap,我有以下代码来检索map的键值对: countries = BeneficiaryJSONParser.parseCountriesFeed(result); for(Map.Entry<String, Object> entry: countries.entrySet()) { System.out.println(entry.getKey() + " : " + entry.getValue()); } 我想将数据作为一个带有键和值的数组来获取。因为我想把那些键值对放进

我有以下代码来检索map的键值对:

countries = BeneficiaryJSONParser.parseCountriesFeed(result);
for(Map.Entry<String, Object> entry: countries.entrySet()) {
    System.out.println(entry.getKey() + " : " + entry.getValue());
}
我想将数据作为一个带有键和值的数组来获取。因为我想把那些键值对放进去

final MyData items[] = new MyData[3];
items[0] = new MyData( "234","United Arab Emirates" );
items[1] = new MyData( "103","India" );
items[2] = new MyData( "210","Sri Lanka" );
.
.
. 

您只需将每个条目转换为MyData:

List<MyData> data = new ArrayList<> ();
for (Map.Entry<String, Object> e: countries.entrySet()) {
  data.add(new MyData(e.getKey(), String.valueOf(e.getValue());
}

final MyData[] items = data.toArray(new MyData[0]);

您使用的是什么JSON库?为什么不将其反序列化为POJO?可能与@itrollin98重复:实际上问题不是迭代
Map
中的所有条目。这是我需要迭代的
数据
(在输出中描述)当我尝试使用
System.out.println(Arrays.toString(items))时,它给了我
[数据、状态、代码]
我需要
数据中的国家/地区列表
目标我不确定我是否了解您想要的,但我建议的解决方案中没有包括的内容。
List<MyData> data = new ArrayList<> ();
for (Map.Entry<String, Object> e: countries.entrySet()) {
  data.add(new MyData(e.getKey(), String.valueOf(e.getValue());
}

final MyData[] items = data.toArray(new MyData[0]);
final MyData[] items = countries.entrySet().stream()
                        .map(e -> new MyData(e.getKey(), String.valueOf(e.getValue()))
                        .toArray(MyData[]::new);