0

我正在使用带有 StringWriter 的 com.google.gson.stream.JsonWriter 来编写一个有点长的 JSON。

StringWriter stringWriter = new StringWriter();
JsonWriter jsonWriter = new JsonWriter(stringWriter);

然后遍历一个集合并编写 JSON。

jsonWriter.name("Elements").beginArray();
Collection<Element> collection = someObject.getCollection();
    for(Element e : collection){
        jsonWriter.beginObject()
            .name("Id").value(e.getId())
        .endObject();
    }
jsonWriter.endArray();

我的问题是,当我尝试关闭编写器时,我得到一个IOException: Incomplete Document。似乎流无法刷新所有数据或其他内容,因为 JSON 在元素中间结束。

像这样:

{
    "Id": "1245

Collection 实际上是一个HashMap.values()。我有一种预感,这是因为 HashMap 没有同步或类似的东西。

编辑:我正在关闭作者并以这种方式获取字符串:

jsonWriter.flush();
jsonWriter.close();
String json = stringWriter.toString();
4

0 回答 0