Java 解析Json-运行代码时显示不同的顺序

Java 解析Json-运行代码时显示不同的顺序,java,Java,我对Java非常陌生,目前正在从事一个项目,该项目涉及读取json文件并将其放入对象中。到目前为止,我已经设法做到了其中的一部分,但是,我注意到我无法阅读到文件的结尾,我认为这是因为我没有包括额外的变量,如平台、预期以及奇怪的附加属性。到目前为止,我已经设法读入了数据,但我注意到它的顺序是错误的。。。 下面是我所拥有的Json文件的“简短”摘录 `停站:“{”姓名:““托特内斯”,“抵达:“'0959”,“出发:“'1000”},{”姓名:“'Ivybridge”,“抵达:“'1016”,“出发

我对Java非常陌生,目前正在从事一个项目,该项目涉及读取json文件并将其放入对象中。到目前为止,我已经设法做到了其中的一部分,但是,我注意到我无法阅读到文件的结尾,我认为这是因为我没有包括额外的变量,如平台、预期以及奇怪的附加属性。到目前为止,我已经设法读入了数据,但我注意到它的顺序是错误的。。。 下面是我所拥有的Json文件的“简短”摘录

`停站:“{”姓名:““托特内斯”,“抵达:“'0959”,“出发:“'1000”},{”姓名:“'Ivybridge”,“抵达:“'1016”,“出发:“'1016”},{”姓名:“'Plymouth”,“抵达:“'1029”,“出发:”“1033”},{”姓名:“:“Saltash”,“抵达:“'1041”,“出发:”“1042”},{”姓名:“'St Germans”,“抵达:“'1048”,“出发:'1049”},{”姓名:“'Liskeard”,“抵达:“'1100”,“出发:'1101”},{”姓名:{“Bodmin Parkway”,“抵达”:“1115”,“出发”:“1117”},{“姓名”:“Par”,“抵达”:“1127”,“出发”:“1128”},{“姓名”:“圣奥斯泰尔”,“抵达”:“1135”,“出发”:“1136”},{“姓名”:“特鲁罗”,“抵达”:“1152”,“出发”:“1153”},{“姓名”:“雷德鲁斯”,“抵达”:“1206”,“出发”:“1207”},{“姓名”:“坎本”,“抵达”1212”,“出发”:“1213”{“姓名”:“海勒”,“抵达”出发:““1220”},{“姓名”:“圣埃尔斯”,“到达”:“1224”,“出发”:“1225”},{“姓名”:“彭赞斯”,“到达”:“1234”,“出发”:空}],“站台”:“2”,“出发”:“0947”}

我不明白为什么当我运行代码时,它会先显示到达,然后显示名称,然后显示离开?我看不出哪里出了问题。这是我的程序代码

JSONParser=新的JSONParser()


我真的很想看看哪里出了问题,因为我花了很多时间在上面,却找不到任何东西!

这是一个自行编写的JSONParser吗?如果是,我鼓励您使用一个已经存在的工具,比如or。它是自行编写的,我使用了从简单json导入的内容。我明天将尝试使用Jackson!
   try  {
       URL jsonUrl = new URL(url);

       BufferedReader input = new BufferedReader(new InputStreamReader(jsonUrl.openStream()));
       String inputLine;
       JSONArray result = new JSONArray();


       while ((inputLine = input.readLine()) != null) {
           Object obj = parser.parse(inputLine); 
           JSONArray TrainList = (JSONArray) obj;
           result.addAll(TrainList);

       }

       //Read JSON API



       System.out.println(result);

       //Iterate over trainlist array
       result.forEach(stop -> parseNameObject( ( JSONObject) stop) );


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



    }

   private static void parseNameObject(JSONObject Trains)
   {
       //Get Stop object within list
       JSONArray stopObject = (JSONArray) Trains.get("stops");

       JSONObject name = (JSONObject) stopObject.get(0);
       if (name != null) {
           System.out.println(name.toString());
       }