Как преобразовать два json элемента в один с именем первого и значением второго - PullRequest
0 голосов
/ 28 апреля 2020

Я пытался создать файл настроек и получил следующий результат:

   [
      {
        "name": "Test1",
        "value": true
      },
      {
        "name": "Test2",
        "value": 1.7
      }
    ]

То, что я пытаюсь получить, выглядит примерно так:

{
    "Test1": true,
    "Test2": 1.7
}

Как видите, второй намного лучше, и также легче получить данные из этого. Я преобразовываю Setting Object в JSON, а переменные name и value помещаются в отдельные элементы.

Вот мой код :

public class SettingsFile {
    public ArrayList<Setting> settings = new ArrayList<>();

    private Gson gson = new GsonBuilder().setPrettyPrinting().create();

    private final String path;

    public SettingsFile(String path) {
        this.path = path;
    }

    public void save() {
        try {
            FileWriter fileWriter = new FileWriter(path);
            gson.toJson(settings, fileWriter);
            fileWriter.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

А вот Настройка Класс:

public class Setting<type> {
    private type value;
    private String name;
    public Setting(String name) {
        this.name = name;
    }

    public Setting<type> set(type value) {
        this.value = value;
        return this;
    }

    public type get() {
        return value;
    }
}

1 Ответ

0 голосов
/ 28 апреля 2020

Вы можете использовать Map вместо Setting класса,

ArrayList<Map<String, Object>> settings = new ArrayList<>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...