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"????

        }
    }
}
}

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

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

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

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

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

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