Как модулировать код для JSONObject и JSONArray для чтения файлов Json на уровне класса. Который я использую позже для написания тестовых сценариев

#java #gson #cucumber-jvm

#java #gson #cucumber-jvm

Вопрос:

Я использую библиотеку GSON для чтения файла JSON для своей автоматизации. Для чего мне нужно прочитать файл, а затем создать объект json во время обхода JSON.

Позже я использую эти объекты для изменения JSON .. Я хочу сократить код для обхода json, поскольку создается много объектов.

Хотя это работает отлично. Просто мне нужно модулировать код.

Добавление кода с URL, ответа и пользовательского JSON

Url.json

 {"emplyee":
{"addemplyee": "<URL>/emplyee","addemplyee": "<URL>/editemplyee"}
}
 

Response .json

 [
{"success":true},
{"success":false}
]
 

emplyee.json

 {

"addemplyee":
{"details":{  
  "lst":"lastname",
  "id":"username",
  "Password":"password"
}
},
"editemplyee":

{ "details":{  
 "Password":"password"
}}}
 

Актуально
В настоящее время я создаю несколько объектов для чтения файла jOSN, а позже, используя его, я обновляю свой JSON.

Ожидается, что я могу модулировать этот подход к коду.

Ответ №1:

Да, вы можете:

 public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); //you can reuse gson as often as you like

public <T> static T readJson(String file){
try{
FileReader fr = new FileReader(new File(file)); //gson takes a filereader no need to load the string to ram
T t = GSON.fromJson(fr, T.getClass());
fr.close(); //close the reader
return t;
}catch(Error e){
//ignore or print, if you need
}
}