【发布时间】:2021-03-12 18:28:36
【问题描述】:
所以我有两个这样的 JSON 文件:
飞行实体
[
{
"flightId": 0,
"flightNumber": 6211,
"departureAirportIATACode": "ANC",
"arrivalAirportIATACode": "GDN",
"departureDate": "2015-06-16T03:20:34 -02:00"
},
{
"flightId": 1,
"flightNumber": 8293,
"departureAirportIATACode": "LAX",
"arrivalAirportIATACode": "MIT",
"departureDate": "2018-03-02T05:12:28 -01:00"
},
.
.
.
{
"flightId": 4,
"flightNumber": 1551,
"departureAirportIATACode": "SEA",
"arrivalAirportIATACode": "LEW",
"departureDate": "2018-01-11T10:48:16 -01:00"
}
]
货物实体
[
{
"flightId": 0,
"baggage": [
{
"id": 0,
"weight": 494,
"weightUnit": "lb",
"pieces": 32
},
{
"id": 1,
"weight": 572,
"weightUnit": "lb",
"pieces": 951
},
{
"id": 2,
"weight": 520,
"weightUnit": "kg",
"pieces": 119
},
{
"id": 3,
"weight": 993,
"weightUnit": "kg",
"pieces": 672
},
{
"id": 4,
"weight": 318,
"weightUnit": "kg",
"pieces": 245
}
],
"cargo": [
{
"id": 0,
"weight": 885,
"weightUnit": "kg",
"pieces": 893
},
{
"id": 1,
"weight": 804,
"weightUnit": "kg",
"pieces": 407
},
{
"id": 2,
"weight": 388,
"weightUnit": "kg",
"pieces": 674
}
]
}
]
现在我想获取请求航班的货物重量。例如:
- 用户输入航班号 6211。
- 我比较输入并从 FlightEntity JSON 文件中获取正确的 flightId(在本例中为 0)。
- 然后在 Cargo Entity JSON 文件中找到对应的 flightId。
- 打印出货物重量的总和。
我的问题是我不知道如何在 JSON 数组中找到输入值(航班号),然后返回对应的 flightId。现在我的代码只接受用户的输入并从 Flight Entity 打印整个 JSON 文件。
package com.company;// Java program to read JSON from a file
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
import org.json.simple.JSONArray;
import org.json.simple.parser.*;
import org.json.simple.parser.JSONParser;
public class Main
{
public static void main(String[] args) throws Exception
{
Scanner myObj = new Scanner(System.in); // Create a Scanner object
System.out.println("Enter Flight Number:");
int FlightNumber = myObj.nextInt() ; // Read user input
Scanner newObj = new Scanner(System.in);
System.out.println("Enter Flight Date(yyyy-mm-dd):");
String Date = newObj.nextLine();
System.out.println("Flight Number: " + FlightNumber);// Output user input
System.out.println("Flight Number: " + Date);// Output user input
Flight(FlightNumber, Date);
}
public static void Flight(int number, String date) throws IOException, ParseException {
// parsing file "CargoEntity.json"
Object obj = new JSONParser().parse(new FileReader("FlightEntity.json"));
// typecasting obj to JSONObject
JSONArray jo=(JSONArray)obj;
// getting Flight id for our number
//Iterating the contents of the array
for (Object o : jo) {
System.out.println(o);
}
}
}
【问题讨论】:
-
欢迎来到 StackOverflow!为了收到一些反馈,您必须显示您尝试过的代码,直到如何。请查看stackoverflow.com/help/minimal-reproducible-example