ITzhangdaopin
Zhang Daopin
采纳率70%
2017-06-02 03:11 阅读 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条回答 默认 最新

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

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

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

    点赞 1 评论 复制链接分享
  • qq_23292875 Hefei19881002 2017-06-02 06:58

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

    点赞 1 评论 复制链接分享
  • oyljerry oyljerry 2017-06-02 03:16

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

    点赞 评论 复制链接分享
  • qq_26625037 代码界的小学生 2017-06-02 03:24

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

    点赞 评论 复制链接分享
  • u012370537 51区 2017-06-02 07:27

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

    点赞 评论 复制链接分享

相关推荐