Вы можете использовать такую библиотеку, как gson.
Предположим, у вас есть такая модель:
public class Products
{
private List<Product> products;
}
public class Product
{
private String name;
private String desc;
private String Quantity;
}
Простой способ:
Добавить еще один атрибут в модель продукта
private String matcode;
Теперь можно использовать код ниже:
Gson gson = new Gson();
String jsonOutput = "{\"products\": [{ \"name\" : \"ABC\" ,\"desc\" : \"abcde\", \"Quantity\": \"2\"}]}";
Products products = gson.fromJson(jsonOutput, Products.class);
System.out.println(products);
for(Product p : products.getProducts()){
p.setMatcode("001100");
}
System.out.println(gson.toJson(products));
Еще один более длинный путь:
а. прочитайте ответ JSON
б. преобразовать в объект (что вы уже должны делать)
с. используйте gson для преобразования объекта в JsonElement в качестве массива
д. итерируйте и обновляйте JsonObject по мере необходимости
е. преобразовать обновленный JsonElement в вывод String.
Рабочий код ниже:
Gson gson = new Gson();
String jsonOutput = "{\"products\": [{ \"name\" : \"ABC\" ,\"desc\" : \"abcde\", \"Quantity\": \"2\"}]}";
Products products = gson.fromJson(jsonOutput, Products.class);
System.out.println(products);
JsonElement jsonElement = gson.toJsonTree(products);
JsonArray jsonArray = jsonElement.getAsJsonObject().get("products").getAsJsonArray();
for (JsonElement ele : jsonArray) {
JsonObject obj = ele.getAsJsonObject();
obj.addProperty("matcode", "001100");
}
String updatedJsonOutput = gson.toJson(jsonElement);
System.out.println("Updated json Object: " + updatedJsonOutput);