Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中迭代这个JSON_Java_Json_Iteration - Fatal编程技术网

如何在java中迭代这个JSON

如何在java中迭代这个JSON,java,json,iteration,Java,Json,Iteration,我试图在Java中迭代下面的JsonObject代码,我使用的是GoogleGSON 意图: 在我的swing菜单中,我将按下标有团队名称的按钮,例如: 巴塞罗那足球俱乐部 然后将在按下的相应团队按钮上显示每个球员的列表 显示的播放器列表示例: 布拉沃、蒙托亚、皮克、拉基蒂等 我很难理解如何使用这个Json文件来完成这项工作,我愿意使用完成这项工作所需的任何库,甚至重新格式化这个Json文件本身 额外:如果有人也能解释在数据中导航的基本知识,以便将来我能显示所有的数据年龄、国籍。。。对于一个团队

我试图在Java中迭代下面的JsonObject代码,我使用的是GoogleGSON

意图: 在我的swing菜单中,我将按下标有团队名称的按钮,例如:

巴塞罗那足球俱乐部 然后将在按下的相应团队按钮上显示每个球员的列表

显示的播放器列表示例:

布拉沃、蒙托亚、皮克、拉基蒂等 我很难理解如何使用这个Json文件来完成这项工作,我愿意使用完成这项工作所需的任何库,甚至重新格式化这个Json文件本身

额外:如果有人也能解释在数据中导航的基本知识,以便将来我能显示所有的数据年龄、国籍。。。对于一个团队中的每个球员来说,这也太棒了

{ 小组: { 巴塞罗那足球俱乐部:{ 好极了:{ 年龄:32岁, 国籍:智利, 俱乐部:巴塞罗那俱乐部, 位置:守门员, 总数:83 }, 蒙托亚:{ 年龄:24岁, 国籍:西班牙, 俱乐部:巴塞罗那俱乐部, 位置:后卫, 总数:77 }, 生气:{ 年龄:28, 国籍:西班牙, 俱乐部:巴塞罗那, 位置:后卫, 总数:84 }, 拉基蒂克:{ 年龄:27岁, 国籍:克罗地亚, 俱乐部:巴塞罗那, 位置:中场, 总数:83 }, 布斯克茨:{ 年龄:27岁, 国籍:西班牙, 俱乐部:巴塞罗那, 位置:中场, 总数:86 }, 哈维:{ 年龄:35岁, 国籍:西班牙, 俱乐部:巴塞罗那, 位置:中场, 总数:86 }, 伊涅斯塔:{ 年龄:31岁, 国籍:西班牙, 俱乐部:巴塞罗那, 位置:中场, 总体而言: }, 佩德罗:{ 年龄:28, 国籍:西班牙, 俱乐部:巴塞罗那, 位置:前进, 总数:83 }, 苏亚雷斯:{ 年龄:28, 国籍:乌拉圭, 俱乐部:巴塞罗那, 位置:前进, 总数:89 }, 梅西:{ 年龄:28, 国籍:阿根廷, 俱乐部:巴塞罗那, 位置:前进, 总数:93 }, 内马尔:{ 年龄:23,, 国籍:巴西, 俱乐部:巴塞罗那, 位置:前进, 总数:87 } } }
} 这可能有助于您理解迭代

public class JsonParseTest {

    private static final String filePath = "E:\\testJson.json";

    public static void main(String[] args) {

        try {

            // read the json file

            FileReader reader = new FileReader(filePath);



            JSONParser jsonParser = new JSONParser();

            JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
         // get a String from the JSON object

            String firstName = (String) jsonObject.get("firstname");

            System.out.println("The first name is: " + firstName);


          // get a number from the JSON object

            long id =  (long) jsonObject.get("id");

            System.out.println("The id is: " + id);



            // get an array from the JSON object

          JSONArray lang= (JSONArray) jsonObject.get("languages");



            // take the elements of the json array

            for(int i=0; i<lang.size(); i++){

                System.out.println("The " + i + " element of the array: "+lang.get(i));

            }

            Iterator i = lang.iterator();



            // take each value from the json array separately

            while (i.hasNext()) {

                JSONObject innerObj = (JSONObject) i.next();

                System.out.println("language "+ innerObj.get("lang") +

                        " with level " + innerObj.get("knowledge"));

            }

            // handle a structure into the json object

            JSONObject structure = (JSONObject) jsonObject.get("job");

            System.out.println("Into job structure, name: " + structure.get("name"));



        } catch (FileNotFoundException ex) {

            ex.printStackTrace();

        } catch (IOException ex) {

            ex.printStackTrace();

        } catch (ParseException ex) {

            ex.printStackTrace();

        } catch (NullPointerException ex) {

            ex.printStackTrace();

        }



  }




 }

我已经创建了一个伪代码检查它

    try {
                JSONObject root = new JSONObject("YOUR_JSON");
                JSONObject team = root.getJSONObject("Teams").getJSONObject("FC Barcelona");
                Iterator keys =  team.keys(); 

                //iterate each object
                while (keys.hasNext()){
                    JSONObject obj = team.getJSONObject((String)keys.next());
                    String age = obj.getString("age");
                }


            } catch (JSONException e) {
                e.printStackTrace();
            }

使用json解析器解析json,然后迭代解析的json结构。
    try {
                JSONObject root = new JSONObject("YOUR_JSON");
                JSONObject team = root.getJSONObject("Teams").getJSONObject("FC Barcelona");
                Iterator keys =  team.keys(); 

                //iterate each object
                while (keys.hasNext()){
                    JSONObject obj = team.getJSONObject((String)keys.next());
                    String age = obj.getString("age");
                }


            } catch (JSONException e) {
                e.printStackTrace();
            }