gpt4 book ai didi

java - 使用 javax.json 从列表创建 json

转载 作者:行者123 更新时间:2023-11-30 08:06:25 24 4
gpt4 key购买 nike

我有一个包含 3000 个项目的列表,我必须从中创建一个 json 并将其发送到我的客户端代码(Extjs)。由于 JsonArrayBuilder 不接受列表,我正在迭代列表并添加创建每个 json 对象,最后将其发送到客户端。问题是这个过程需要 13 秒,这实在是太长了。

这是我制作这个 json 数组的方法。

 JsonObjectBuilder builder = Json.createObjectBuilder();
JsonArrayBuilder childrenArrayBuilder = Json.createArrayBuilder();
builder.add("success", true);
builder.add("children, childrenArrayBuilder);

这是我迭代列表的方法

           for (TagDefinitionProject tt : myList) {

childrenArrayBuilder.add(
Json.createObjectBuilder()
.add("id", getTreeNodeId(tt.getTag()) + "-" + (idSplit[1]))
.add("nodeStatus", tt.getStatus())
.add("text", tt.getNJTagName())
.add("tagNJName", tt.getTag().getName())
.add("baseType", tt.getTag().getBaseType().getName())
.add("definitionType", def)
.add("leaf", (tt.getTag().getChildren().size() == 1 || tt.getTag().getChildren().get(1).getChild().equals(tt.getTag()))));
}

如何提高这里的性能?

最佳答案

使用 javax Json 库创建多个构建器的首选方法是使用 JsonBuilderFactory。我修改了下面的代码。

     // Create a new factory. The argument, config, can be null or
// contain a Map with configuration values for the created builders.
JsonBuilderFactory factory = Json.createBuilderFactory(config);
JsonObjectBuilder builder = factory.createObjectBuilder();
JsonArrayBuilder childrenArrayBuilder = factory.createArrayBuilder();
builder.add("success", true);
builder.add("children", childrenArrayBuilder);


for (TagDefinitionProject tt : myList) {

childrenArrayBuilder.add(
factory.createObjectBuilder()
.add("id", getTreeNodeId(tt.getTag()) + "-" + (idSplit[1]))
.add("nodeStatus", tt.getStatus())
.add("text", tt.getNJTagName())
.add("tagNJName", tt.getTag().getName())
.add("baseType", tt.getTag().getBaseType().getName())
.add("definitionType", def)
.add("leaf", (tt.getTag().getChildren().size() == 1 || tt.getTag().getChildren().get(1).getChild().equals(tt.getTag()))));
}

关于java - 使用 javax.json 从列表创建 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31033148/

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