我的问题是将多个列表背靠背转换为单个 JsonArray 的最佳方法是什么。列表是动态出现的,所以我不想或不能将所有列表(list1 - listn)合并到一个大列表中,然后使用 Jackson 将合并的列表写入 JsonArray。
Convert
ArrayList<Event> list1 = new ArrayList<Event>();
list1.add(new Event("a1","a2"));
list1.add(new Event("b1","b2"));
ArrayList<Event> list2 = new ArrayList<Event>();
list2.add(new Event("c1","c2"));
list2.add(new Event("d1","d2"));
......
......listn
对于单个 jsonArray:
[
{"field1":"a1", "field2":"a2"},
{"field1":"b1", "field2":"b2"},
{"field1":"c1", "field2":"c2"},
{"field1":"d1", "field2":"d2"},
......
{"field1":"n1", "field2":"n2"}
]
我不知道Jackson
但看着API
我会这样做:
- 创建一个自定义实现
WriterBasedJsonGenerator
(或任何JsonGenerator
您使用)稍微修改了行为:
public MyJsonGenerator extends WriterBasedJsonGenerator {
@Override
public void writeStartArray () {// do nothing
}
@Override
public void writeEndArray () {// do nothing
}
}
-
比写第一篇之前ArrayList
我会做
generator.writeRaw ('[');
在下一个列表之前
generator.writeRaw (',');
在最后一个列表之后
generator.writeRaw (']');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)