Я пытался создать файл настроек и получил следующий результат:
[
{
"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;
}
}