【发布时间】:2020-10-01 10:27:36
【问题描述】:
我正在尝试使用 Jackson JsonGenerator 将对象列表写入 JSON。 我想知道这是否可能。
我有一个哈希图,形成为 Key,List
我正在使用 Jackson JsonGenerator 创建一个 JSON。并且希望能够简单地添加一个对象列表,而不是分别处理/循环列表中的每个对象。
这可能吗?
JsonFactory factory = new JsonFactory();
StringWriter sw = new StringWriter();
JsonGenerator generator = factory.createGenerator(sw);
generator.setPrettyPrinter(new DefaultPrettyPrinter());
generator.writeStartObject(); // {
generator.writeFieldName("tags"); // {"tags":
generator.writeStartArray(); // {"tags": [
for ( String key : hm.keySet() ) {
log.info("Record to Convert to JSON: " + key);
generator.writeStartObject(); // {
generator.writeStringField("tagId", key); // { "tagId": "SAGE.esn.tag_name"
generator.writeFieldName("data"); // { "tagId": "SAGE.esn.tag_name", "data"
generator.writeStartArray(); // { "tagId": "SAGE.esn.tag_name", "data" : [
// generator.writeStartObject(); // { "tagId": "SAGE.esn.tag_name", "data" : [{
generator.write(hm.get(key));
generator.writeStringField("ts", data[0].trim()); // { "tagId": "NST_MD1_CRANK_CASE", "data" : [{"ts":"2017-11-15T19:55:00"
generator.writeEndObject(); // { "tagId": "SAGE.esn.tag_name", "data" : [{"ts":"2017-11-15T19:55:00","v" : "100","q":"3"}
generator.writeEndArray(); // { "tagId": "SAGE.esn.tag_name", "data" : [{"ts":"2017-11-15T19:55:00","v" : "100","q":"3"}]
generator.writeEndObject(); // { "tagId": "SAGE.esn.tag_name", "data" : [{"ts":"2017-11-15T19:55:00","v" : "100","q":"3"}]}
}
generator.writeEndArray(); // {"tags": [ { "tagId": "SAGE.esn.tag_name", "data" : [{"ts":"2017-11-15T19:55:00","v" : "100","q":"3"}]} ]
generator.writeEndObject(); // {"tags": [ { "tagId": "SAGE.esn.tag_name", "data" : [{"ts":"2017-11-15T19:55:00","v" : "100","q":"3"}]} ]}
generator.flush();
generator.close();
【问题讨论】:
标签: java json arraylist jackson