ОК, я создаю приложение, которое использовало JSON
, чтобы сохранить дату. Я использовал GSON
как мой JSON
«процессор».Java - Несколько GSON?
Да, я знаю, как использовать Gson
. Я следую учебнику в Интернете. Проблема в том, что учебник по сети и сохранить только «одни» данные json. Я имею в виду, например,
{
"Data1": {
"name": "Data1",
"info": "ABCDEFG"
}
}
Таким образом, после того, как пользователь спас Data1, они хотят, чтобы сохранить Data2, Data3 и т.д., как этот
{
"Data1": {
"name": "Data1",
"info": "ABCDEFG"
},
"Data2": {
"name": "Data2",
"info": "ABCDEFGHIJ"
}
}
Но если пользователь хочет сохранить данные 100+ ли я сделать 100 классов? Ниже мой код.
JSONTest.class
public class JSONTest
{
private static Gson gson;
private static File file;
private static JSONTest instance;
private static Bean bean;
private static Map<String, String> data = new HashMap();
public static void main(String[] args)
{
bean = new Bean();
File file = new File("C://test-json.json");
GsonBuilder builder = new GsonBuilder();
builder.setPrettyPrinting();
gson = builder.create();
data.put("name", "data1");
data.put("info", "abcde");
bean.setData(data);
String jsonString = gson.toJson(bean);
try
{
FileWriter fw = new FileWriter(file);
fw.write(jsonString);
fw.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
Bean.class
public class Bean
{
private Map<String, String> data;
public Map<String, String> getData()
{
return data;
}
public void setData(Map<String, String> properties)
{
this.data = properties;
}
}
Так что результат этот
{
"data": {
"name": "data1",
"info": "abcde"
}
}
ок теперь я изменить значение (означает, что я хочу, чтобы добавить новый данные
data.put("name", "data2");
data.put("info", "abcdef");
bean.setData(data);
результат этого
{
"data": {
"name": "data2",
"info": "abcdef"
}
}
, но я хочу, чтобы результат, как этот
{
"data1": {
"name": "data1",
"info": "abcde"
},
"data2": {
"name": "data2",
"info": "abcdef"
}
}
Так что мой вопрос, как я могу это сделать? Если пользователь хочет сохранить данные 100+ сделать я должны сделать 100 + классы или элементы? А также, как добавить «selectedData: "data1"
», поэтому мой загрузчик json так загружает только 1 данные?
Кажется, что это «Карта» будет работать здесь. –