使用GSON将JSON附加到日志文件

时间:2014-04-08 13:56:46

标签: java gson

我是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做到这一点?如果是这样,怎么样?

谢谢

2 个答案:

答案 0 :(得分:1)

查看collection examples

修改代码以使用哈希映射集来序列化和反序列化。

<强>序列化

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对象和数组的示例。

http://examples.javacodegeeks.com/core-java/gson/convert-java-object-to-from-json-using-gson-example/