Я использую библиотеку GSON для чтения файла JSON для моей автоматизации.Для которого мне нужно прочитать файл и затем создать объект json при обходе JSON.
Позже я использую эти объекты для изменения JSON. Я хочу уменьшить код для обхода json каксоздается много объектов.
Хотя это прекрасно работает.Просто мне нужно модулировать код.
Добавление кода с URL-адресом, откликом и пользователем JSON
Url.json
{"users":
{"addUser": "<URL>/addUser","editUser": "<URL>/editUser"}
}
Ответ .json
[
{"success":true},
{"success":false}
]
User.json
{
"addUsers":
{"userAttributes":{
"lst":"lastname",
"id":"username",
"Password":"password"
}
},
"updateUsers":
{ "userAttributes":{
"Password":"password"
}}}
Java Code
public class UsersSameFile extends ReaderUtil{
JsonObject userjs = JsonReaderUtil.readGSONObject("./requestJson/User.json");
JsonObject urljs = JsonReaderUtil.readGSONObject("./urlsJson/Url.json");
JsonArray res = JsonReaderUtil.readGSONArray("./responseJson/response.json");
JsonObject addUsers = userjs.get("addUsers").getAsJsonObject();
JsonObject userAttributes = addUsers.get("userAttributes").getAsJsonObject();
JsonObject usersurl = urljs.get("users").getAsJsonObject();
JsonObject success = res.get(0).getAsJsonObject();
@Given("^Add a user$")
public void add_a_user_json_payloads() throws Throwable {
userAttributes.addProperty("lst", getValue("UserOne"));
userAttributes.addProperty("id",getValue("UserOne"));
userAttributes.addProperty("Password",getValue("password"));
System.out.println(addUsers);
System.out.println("This returns me the updated JSON. How can i reduce the code at class level for reading in JSON objects from file. I am using this for API automation")
}
}
ReadGSON.java
public static JsonObject readGSONObject(String file) {
try {
Gson gson = new GsonBuilder().setPrettyPrinting().create();
File jsonFile = new File(file);
String jsonString = FileUtils.readFileToString(jsonFile);
JsonElement jelement = new JsonParser().parse(jsonString);
JsonObject jobj=jelement.getAsJsonObject();
return jobj;
} catch (FileNotFoundException e) {
// TODO: handle exception
}
catch (IOException e) {
// TODO: handle exception
}
return null;
}
Actual В настоящее время я создаю несколько объектов для чтения этого файла jOSN, а затем с использованием того же самого я обновляю свой JSON.
Ожидается Могу ли я модулировать этот подход кода.