Я создал клиентский файл json, как показано ниже:
[{"firstName": «test», «lastName»: «temp», «age»: 35, «emailAddress»: «test @ Gmail».com "," address ": {" streetAddress ":« тестовое тестирование »,« city »:« city »,« postCode »:« 12343546 »,« state »:« state »,« country »:« cy »,"county": "abc"}, "phoneNumber": {"home": "012345678", "mob": "0987654321"}}, {"firstName": «tug», «lastName»: «kjk», "age ": 35," emailAddress ":" jhgj@Gmail.com "," address ": {" streetAddress ":" jh hjgjhg, "city": "kjhjh", "postCode": "122345", "state":«Jhgl», «страна»: «jaj», «графство»: «jhgkg»}, «phoneNumber»: {«home»: «012345678», «mob»: «0987654321»}}]
Для файла данных Customer JSON я создал ниже класс JSON datareader:
public class JsonDataReader {
private final String customerFilePath = new ConfigFileReader().getTestDataResourcePath() + "Customer.json";
private List<Customer> customerList;
public JsonDataReader(){
customerList = getCustomerData();
}
private List<Customer> getCustomerData() {
Gson gson = new Gson();
BufferedReader bufferReader = null;
try {
bufferReader = new BufferedReader(new FileReader(customerFilePath));
Customer[] customers = gson.fromJson(bufferReader, Customer[].class);
return Arrays.asList(customers);
}catch(FileNotFoundException e) {
throw new RuntimeException("Json file not found at path : " + customerFilePath);
}finally {
try { if(bufferReader != null) bufferReader.close();}
catch (IOException ignore) {}
}
}
public final Customer getCustomerByName(String customerName){
for(Customer customer : customerList) {
if(customer.firstName.equalsIgnoreCase(customerName)) return customer;
}
return null;
}
}
Создан класс POJO, как показано ниже:
public class Customer {
public String firstName;
public String lastName;
public int age;
public String emailAddress;
public Address address;
public PhoneNumber phoneNumber;
public class Address {
public String streetAddress;
public String city;
public String postCode;
public String state;
public String country;
public String county;
}
public class PhoneNumber {
public String home;
public String mob;
}
}
Это работает нормально, так как есть только одинФайл данных JSON, однако я создам больше файлов данных JSON, поэтому, возможно, мне придется создать несколькочаевые POJO для каждого, но есть ли способ, которым я могу написать общий универсальный класс jsondatareader для всех этих файлов JSON?