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报错。