我是Java的新手。我正在尝试学习基本的I / O内容。目前,我正试图弄清楚如何将JSON写入文件。为了做到这一点,我使用了GSON。
目前,我已成功从HashMap生成一些JSON。我对该过程的代码如下所示:
HashMap<String, String> details = new HashMap<String, String>();
details.put("Property 1", "value A");
details.put("Property 2", "value B");
details.put("Property 3", "value C");
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
String json = gson.toJson(details);
此代码生成一个类似于以下内容的JSON字符串:
{"Property 1":"value 1","Property 2":"value B","Property 3":"value C" }
我需要将它添加到我的机器上的.json文件中。此文件必须是这些条目的数组。我不确定如何读取现有的.json文件,它以数组格式存在并附加到它。有没有办法用GSON做到这一点?如果是这样,怎么样?
谢谢
答案 0 :(得分:1)
修改代码以使用哈希映射集来序列化和反序列化。
<强>序列化强>
Collection<HashMap<String, String>> details = new List<HashMap<String, String>>();
// add contents
String json = gson.toJson(details);
<强>反序列化强>
String json = // read in file content
Type collectionType = new TypeToken<Collection<HashMap<String, String>>>(){}.getType();
Collection<HashMap<String, String>> details2 = gson.fromJson(json, collectionType);
在&#34;收藏限制&#34;部分内容如下:
在反序列化时,Collection必须是特定的泛型类型
我不确定,但这可能意味着您必须将collectionType
设置为使用List
而不是Collection
作为特定类型。
答案 1 :(得分:0)
此网站显示了使用gson读取/编写简单json对象和数组的示例。