I was trying to read and convert a JSON file to an array but getting null values from the array after reading the JSON file. I am using the default constructor for my Ship
You can use something along these lines. Note that you don´t have to use Files.readAllBytes but in your code it could also be that the BufferedReader causes the error. If you need your ShipDetails as Array instead of a list, convert it or use your needed type in the TypeToken.
final GsonBuilder builder = new GsonBuilder();
final Gson gson = builder.enableComplexMapKeySerialization().create();
// you can use the buffered reader here too, but this is easier to debug if shipDetails is a file
final String jsonRepresentation = new String(Files.readAllBytes(shipDetails);
// add a type definition
final Type type = new TypeToken>(){}.getType();
ArrayList shipDetails = gson.fromJson(jsonRepresentation, type);
And as mentioned in the comments above, generate Getters and Setters.