在Java中迭代对象数组并提取键和值
我以对象数组的形式接收数据,并将其接受为List data=new ArrayList;然后需要迭代以从对象中获取键值对。例如:在Java中迭代对象数组并提取键和值,java,arraylist,map,Java,Arraylist,Map,我以对象数组的形式接收数据,并将其接受为List data=new ArrayList;然后需要迭代以从对象中获取键值对。例如: Data send from JavaScript : data : {[ { name : abc, key : [ { name : 1, value : 2 }, {
Data send from JavaScript :
data : {[
{
name : abc,
key : [
{
name : 1,
value : 2
},
{
name : 3,
set : 4
}
]
},
{
name : def,
key : [
{
name : 5,
value : 2
},
{
name : 9,
set : 7
}
]
}
]}
从ArrayList中提取第一个对象会得到以下结果:
{name=abc, key=[{name=1, value=2}, {name=3, set=4}]}
现在,我需要获取键名及其值abc作为字符串。对于key,我需要访问单个对象并提取key,即name,和它的值,即1作为字符串。我无法理解如何迭代上面的列表并将键和值提取为字符串。请提供帮助。我强烈建议您在处理JSON输入时使用JSON库,但: 既然你写的是你的同事
{name=abc, key=[{name=1, value=2}, {name=3, set=4}]}
你说你有一个ArrayList,我要做一个有根据的猜测,你的ArrayList包含一个以名称和键为键的映射。你用System.out.println打印了这张地图
现在,如果你有一张地图,它非常简单:
Map<String, Object> map = (Map<String, Object>) myList.get(0);
for (String key : map.keySet())
System.out.println("Key: " + key + " maps to value: " + map.get(key));
你确定你有name=abc而没有name:abc吗?是的。到目前为止,我没有问题。但是在那之后我就不能迭代了。如果你能帮我迭代列表{name=abc,key=[{name=1,value=2},{name=3,set=4}]},那就太好了。你确定你有=而没有:?你确定你有name=abc而不是name=abc吗?因为这不是有效的JSON,这意味着您必须从scratchYes编写解析器,我非常确定,因为我正在将它转换为List。其名称为abc,而非名称为abcOk。更新了我的答案,有根据地猜测你在哪里。是的,你是对的。我有一张地图,上面有名字和钥匙。现在我需要做的是迭代[{name=1,value=2},{name=3,set=4}]来提取键和值。