好吧,我正在創建一個使用JSON
保存日期的應用程序。我使用GSON
作爲我的JSON
「處理器」。我想知道如何使用Gson
。我遵循網絡上的教程。問題是,Web上的教程只保存「一個」json數據。我的意思是,例如,Java - Multiple GSON?
{
"Data1": {
"name": "Data1",
"info": "ABCDEFG"
}
}
於是,經過用戶保存數據1,他們希望保存數據2,數據3,等等這樣
{
"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個數據?
好像一個'Map'在這裏就可以工作。 –