gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:34:06 28 4
gpt4 key购买 nike

我正在创建一个 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 集合库中的所有对象。

关于java - 如何将 LinkedHashSet 集合添加到 JsonObjectBuilder 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49078733/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com