如何将LinkedHashSet集合添加到JsonObjectBuilder对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将LinkedHashSet集合添加到JsonObjectBuilder对象?相关的知识,希望对你有一定的参考价值。
我正在创建一个JsonBuilderObject。我的程序遍历一个集合,集合中的每个项目都包含两个整数值和三个集合。这是我用过的代码。我想将record.matchingTerms添加到我的objectBuilder中,这是一个LinkedHashSet。有人可以提供一些关于如何做到这一点的提示吗?
//start Building a JSON Tree
JsonObjectBuilder jsonRootBuilder;
jsonRootBuilder = Json.createObjectBuilder();
JsonArrayBuilder jsonArrayBuilder = Json.createArrayBuilder();
for (Record record : processResultArray) {
//create json object for each record.
JsonObjectBuilder recordJsonBuilder = Json.createObjectBuilder();
recordJsonBuilder.add("id1", record.id1);
recordJsonBuilder.add("id2", record.id2);
recordJsonBuilder.add("matchingTerm", ?); //record.matchingTerms is a LinkedHashSet
//creating a json array to preserve matching terms in an array
//creating a json array to preserve original terms from table one
//creating a json array to preserve original terms from table two
JsonObject recordJson = recordJsonBuilder.build();
//add the record to our array of records
jsonArrayBuilder.add(recordJson);
}
JsonArray arrayObject = jsonArrayBuilder.build();
jsonRootBuilder.add("records",arrayObject );
JsonObject rootObject = jsonRootBuilder.build();
答案
我总是发现这些API笨拙而且艰巨。我只是创建我的对象,通常是一个Map<String, Object>
,其值可以是基元,列表或更多这样的地图,并使用你方便的任何库序列化它 - 无论是Spring选择的jackson,还是gson或其他东西。
这是一个使用jackson的简单示例:
List<Object> list = new ArrayList<>();
for ( <each record > ) {
Map<String, Object> obj = new HashMap<>();
list.add(obj);
obj.put("id1", record.id1);
obj.put("id2", record.id2);
// etc
}
String json = new ObjectMapper().writeValueAsString(list);
如果要保留obj
中条目的顺序,请改用LinkedHashMap
。
JSON序列化器知道如何从java集合库中编写所有对象。
以上是关于如何将LinkedHashSet集合添加到JsonObjectBuilder对象?的主要内容,如果未能解决你的问题,请参考以下文章
java问题。集合 HashSet,LinkedHashSet,TreeSet,ArrayLIst,LinkList,Vector这些集合在平时应用中,该如何