Zhang Daopin
2017-06-02 03:11
采纳率: 70%
浏览 1.1k
已采纳

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条回答 默认 最新

  • Rains_ 2017-06-02 03:28
    已采纳

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

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • oyljerry 2017-06-02 03:16

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

    评论
    解决 无用
    打赏 举报
  • 代码界的小学生 2017-06-02 03:24

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

    评论
    解决 无用
    打赏 举报
  • Hefei19881002 2017-06-02 06:58

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

    评论
    解决 无用
    打赏 举报
  • 51区 2017-06-02 07:27

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

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题