JAVA JSON遍历问题,求解(内附代码)
 package testJSON;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class TestJson2 {
public static void main(String[] args) {
    String str = "{\"data\":[{\"id\":\"1\",\"name\":\"name1\"},"
            + "{\"id\":\"2\",\"name\":\"Zname2.0\",\"name\":\"Dname2.1\",\"name\":\"Pname2.2\",\"name\":\"Zname2.3\"},{\"id\":\"3\",\"name\":\"name3\"},]}";
    //
    JSONObject jsonObject = JSONObject.fromObject(str);  
    JSONArray result = jsonObject.getJSONArray("data");
    //System.out.println(result);
    for (int i = 0; i < result.size(); i++) {
        String id = result.getJSONObject(i).getString("id");
        if(id.equals("2")){
            String name = result.getJSONObject(i).getString("name");
            System.out.println(name);//["Zname2.0","Dname2.1","Pname2.2","Zname2.3"]

            //怎么取出["Zname2.0","Dname2.1","Pname2.2","Zname2.3"]中的"Dname2.1"????

        }
    }
}
}

5个回答

String[] strs=name.split(",");
List asList = Arrays.asList(strs);
System.out.println(asList.get(1));

先分割成数组,然后转成集合,最后直接取下标

ITzhangdaopin
Zhang Daopin 恩恩,好的,谢谢你~
大约 3 年之前 回复
u013154152
Rains_ 回复itzhangdaopin: 去掉双引号直接replace替换掉就行了
大约 3 年之前 回复
ITzhangdaopin
Zhang Daopin 获取的值是:"Dname2.1" 是不是还要再截取一次,将“ ”双引号去掉?
大约 3 年之前 回复
ITzhangdaopin
Zhang Daopin 哎,,,我咋就没想到,放在list集合呢,谢谢你,问题解决了
大约 3 年之前 回复

三楼说的对啊 如果你想取出特定的name值可以加一个判断

ITzhangdaopin
Zhang Daopin 恩恩,有道理
大约 3 年之前 回复

你这是一个字符串格式的数组,只能用逗号,来做split分割,然后自己去查找

ITzhangdaopin
Zhang Daopin 是的是的是的
大约 3 年之前 回复

为什么你的json里有好几个重复的键“name”

ITzhangdaopin
Zhang Daopin 为什么不可以?openstack取出的数据太庞大就是这么无理
大约 3 年之前 回复

["Zname2.0","Dname2.1","Pname2.2","Zname2.3"]这个是字符串的话,需要你先把[和]给截取掉,得到"Zname2.0","Dname2.1","Pname2.2","Zname2.3",然后split(",")才行,直接split报错。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问