我想使用jackson将ArrayList转换为JSONArray。
event.java:这是一个java bean类,有两个字段“field1”和“field2”映射为JSONProperty。
转换
ArrayList<Event> list = new ArrayList<Event>();
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));
至
[
{"field1":"a1", "field":"a2"},
{"field1":"b1", "field":"b2"}
]
我能想到的方法是:writeListToJsonArray():
public void writeListToJsonArray() throws IOException {
ArrayList<Event> list = new ArrayList<Event>();
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));
OutputStream out = new ByteArrayOutputStream();
JsonFactory jfactory = new JsonFactory();
JsonGenerator jGenerator = jfactory.createJsonGenerator(out, JsonEncoding.UTF8);
ObjectMapper mapper = new ObjectMapper();
jGenerator.writeStartArray(); // [
for (Event event : list) {
String e = mapper.writeValueAsString(event);
jGenerator.writeRaw(usage);
// here, big hassles to write a comma to separate json objects, when the last object in the list is reached, no comma
}
jGenerator.writeEndArray(); // ]
jGenerator.close();
System.out.println(out.toString());
}
generator.write(out, list)
generator.write(out, list1)
generator.write(out, list2)
这太复杂了,Jackson通过它的writer方法处理列表,就像它处理常规对象一样。假设我没有误解你的问题,这对你来说应该很好:
public void writeListToJsonArray() throws IOException {
final List<Event> list = new ArrayList<Event>(2);
list.add(new Event("a1","a2"));
list.add(new Event("b1","b2"));
final ByteArrayOutputStream out = new ByteArrayOutputStream();
final ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(out, list);
final byte[] data = out.toByteArray();
System.out.println(new String(data));
}
问题内容: 我想使用杰克逊将ArrayList转换为JsonArray。 Event.java :这是Java bean类,其中两个字段“ field1”,“ field2”映射为JsonProperty。 我的目标是: 兑换 至 我能想到的方式是: writeListToJsonArray() : 我正在寻找类似的东西: 这将列表直接转换为json数组格式,然后将其写入outputstream“
我必须以JSON格式转换数据表单以发送到webAPI。 我有一个从第1页调用的弹出表单: 第1页有以下代码: 输出JSON不正确。代码返回如下字符串: ! DOCTYPE html 什么是最好的方法来字符串化输入数据?我哪里错了?
问题内容: 如标题所示,我正在寻找最快的方式将整数数组写入文件。数组的大小将有所不同,并且实际上包含2500至25000000 int之间的任何位置。 这是我目前正在使用的代码: 鉴于DataOutputStream有一种写入字节数组的方法,我已经尝试将int数组转换为字节数组,如下所示: 像这样: 两者似乎都使速度略有提高,约为5%。我没有对它们进行足够严格的测试以确认这一点。 是否有任何技术可
问题内容: 我需要使用java nio将巨大的字符串写入(附加)到平面文件。编码为ISO-8859-1。 目前,我们正在编写如下图所示。有没有 更好的 方法可以做到这一点? 编辑:尝试了两个选项。以下是结果。 使用ByteBuffer和Channel:花费了4402 ms 使用缓冲的Writer:占用563毫秒 问题答案: 我认为,如果不对软件进行基准测试,您将无法得到严格的答案。在适当的条件下,
问题内容: 我正在尝试使用Java中的分数。 我想实现算术函数。为此,我首先需要一种将功能标准化的方法。我知道我只有一个公分母才能将1/6和1/2加起来。我将不得不添加1/6和3/6。天真的方法会让我加2/12和6/12,然后减少。如何以最少的性能损失获得一个共同的分母?哪种算法最适合呢? 版本8(感谢hstoerr): 改进包括: 现在equals()方法与compareTo()方法一致 问题答
问题内容: 我想知道打印2D阵列的最佳方法是什么。这是我的一些代码,我只是想知道这是否是一种好习惯。如果发现任何其他错误,请更正我在此代码中犯的任何其他错误。谢谢! 问题答案: 你可以用简单的方式打印。 在下面使用以打印2D阵列 在下面使用以打印一维阵列