在Java中迭代对象数组并提取键和值

在Java中迭代对象数组并提取键和值,java,arraylist,map,Java,Arraylist,Map,我以对象数组的形式接收数据,并将其接受为List data=new ArrayList;然后需要迭代以从对象中获取键值对。例如: Data send from JavaScript : data : {[ { name : abc, key : [ { name : 1, value : 2 }, {

我以对象数组的形式接收数据,并将其接受为List data=new ArrayList;然后需要迭代以从对象中获取键值对。例如:

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}]来提取键和值。