java迭代数组列表
我想知道迭代此ArrayList的最佳方法,此ArrayList来自API的响应,这是ArrayList:
问题是我不知道如何从循环中获取“id”和“value”, 我知道arraylist的大小,但是我不知道如何从这个数组中打印“键”和“值”
for(int i=1; i <= contacts.size(); i++) {
//Example System.out.print(contacts[i]->id);
//Example System.out.print(contacts[i]->contact_name) ;
//Example System.out.print(contacts[i]->numbers);
//Example System.out.print(contacts[i]->emails);
//I want to print id and value
//
}
在onResponse中,我称此功能为:
ServerResponse resp = response.body();
functionExample((ArrayList) resp.getResponse());
functionExample将ArrayList作为参数。 这是我的resp结果。getResponse():
这是API中的json:
{
"result": "success",
"message": "Lista de Contactos",
"response": [
{
"id": 1,
"contact_name": "EDIFICADORA JUANA",
"numbers": "{24602254,55655545}",
"emails": "{oipoa@gmaio.com,rst008@guan.com}"
},
{
"id": 2,
"contact_name": "LA MEJOR",
"numbers": "{25445877,25845877}",
"emails": "{AMEJOR@GMAIL.COM}"
}
]
}
谢谢你的帮助
# 1 楼答案
尝试这个循环从你的ArrayList中提取每个值
# 2 楼答案
如果使用设置<;地图<;弦,弦>>;设置
# 3 楼答案
# 4 楼答案
如果你正在使用
ArrayList<TreeMap<String, String>> contacts
,那么试试这种方法# 5 楼答案
我强烈建议您使用例如Jackson将JSON响应映射到适当的对象。考虑下面的例子:
在本例中,我使用了您收到的相同JSON响应和
jackson-core
库(http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core/2.8.9)将字符串映射到POJO(而不是可以使用InputStream、byte[]等的字符串)。有两种POJO:Response
和Data
。Response聚合了Data
对象的列表。此外,Data
的getEmails()
和getNumbers()
方法将输入字符串解析为预期对象的列表。例如,如果调用setNumbers("{24602254,55655545}")
,那么getNumbers()
将返回一个整数列表(可以使用任何数字类型),如[24602254, 55655545]
其他建议也是有效的,例如迭代
TreeMap
或JSONObject
的集合。在本例中,我们将重点限制在处理具有特定类型的Java对象,而不是处理Object
类之类的原语最终的解决方案还取决于您的运行时环境。在这种情况下,您必须添加
jackson-core
依赖项——如果您的项目已经出于其他原因使用了Jackson,那么这就更有意义了# 6 楼答案
试试这个。。它会给出arrayList的id