Java 如何将LinkedHashSet集合添加到JsonObjectBuilder对象?

Java 如何将LinkedHashSet集合添加到JsonObjectBuilder对象?,java,json,collections,Java,Json,Collections,我正在创建一个JsonBuilderObject。我的程序遍历一个集合,集合的每个项由两个整数值和三个集合组成。这是我使用的代码。我想将record.matchingTerms作为LinkedHashSet添加到我的objectBuilder中。有人能给我一些提示吗 //start Building a JSON Tree JsonObjectBuilder jsonRootBuilder; jsonRootBuilder = Json.createObjectB

我正在创建一个JsonBuilderObject。我的程序遍历一个集合,集合的每个项由两个整数值和三个集合组成。这是我使用的代码。我想将record.matchingTerms作为LinkedHashSet添加到我的objectBuilder中。有人能给我一些提示吗

        //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既笨拙又费力。我只是创建我的对象,通常是一个
映射
,它的值可以是原语,列出或更多这样的映射,并使用手头的任何库对其进行序列化- 要么是斯普林选择了杰克逊,要么是格森或者别的什么

下面是一个使用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);
List List=new ArrayList();
对于(){
Map obj=新的HashMap();
列表。添加(obj);
obj.put(“id1”,记录id1);
obj.put(“id2”,记录id2);
//等
}
字符串json=newObjectMapper().writeValueAsString(列表);
若要保留
obj
中条目的顺序,请改用
LinkedHashMap


JSON序列化程序知道如何编写java集合库中的所有对象。

请澄清您的问题好吗?你只是想知道如何将LinkedHashSet添加到JsonObject吗?是的,我一直觉得这样的API既笨拙又费力。我只是创建我的对象,通常是一个
映射
,其值可以是原语,列出或更多这样的映射,并使用手头的任何库对其进行序列化;要么是斯普林选择的杰克逊,要么是格森(两部作品)@Bohemian:谢谢你的回答。你能给我指一些我可以遵循的代码示例吗?