Разбор JSON с динамическими ключами в org.json - PullRequest
0 голосов
/ 13 февраля 2019

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

Это для приложения Java Swing.Пользователь сможет изменять существующие поля импорта JSON и будут применены к экспорту JSON.

Fruit.java

public class Fruit {
    private String name;
    private String description;
    private int price;
    private String[] colors;

   public Fruit(JSONObject obj) {
        this.name = obj.optString("name");
        this.description = obj.optString("description");
        this.price = obj.optInt("price");

        JSONArray jArr = obj.optJSONArray("colors");
        String[] sArr =  new String[jArr.length()];
        for(int i = 0; i < sArr.length; i++) {
            sArr[i] = jArr.optString(i);
        }
        this.colors = sArr;
   }
}

ИсходныйИмпорт JSON

{
    "name": "Apple",
    "description":"It is delicious",
    "price": 20,
    "colors":["red","green","yellow"]
}

Будущий импорт JSON

{
    "name": "Apple",
    "description":"It is delicious",
    "price": 20,
    "colors":["red","green","yellow"],
    "fruit": true,
    "types": ["gala", "fuji", "golden delicious", "honeycrisp"],
    "soldAt": ["Corner Store", "Farmers Market", "Walmart"]
}

Примечание. Экспортный JSON будет иметь тот же формат, что и импортный JSON.

Future Exported JSON

{
    "name": "Apple",
    "description":"It is very delicious",
    "price": 5,
    "colors":["red","green","yellow"],
    "fruit": true,
    "types": ["gala", "fuji", "golden delicious", "honeycrisp", "red delicious"],
    "soldAt": ["Corner Store", "Farmers Market"]
}

Мне интересно, как лучше всего добавить новые ключи в экспортный JSON с помощью библиотеки org.json?

...