从List创建JsonArray

use*_*073 4 java json java-ee java-ee-7


我需要从JsonObjects的java.util.List 创建一个javax.json.JsonArray对象(Java EE 7 API).以前,在使用JSON API时,我习惯只使用以下方法:

JSONArray jsonArray = new JSONArray(list);
Run Code Online (Sandbox Code Playgroud)

但我可以看到javax.json.JsonArray中没有等效的构造函数.有没有一种简单的方法(浏览所有列表除外)来做到这一点?
谢谢

Nic*_*amp 10

不幸的是,标准的JsonArrayBuilder不会将列表作为输入.所以你需要迭代列表.

我不知道你的List看起来如何,但你可以做一个像这样的功能:

public JsonArray createJsonArrayFromList(List<Person> list) {
    JsonArray jsonArray = Json.createArrayBuilder();
    for(Person person : list) {
        jsonArray.add(Json.createObjectBuilder()
            .add("firstname", person.getFirstName())
            .add("lastname", person.getLastName()));
    }
    jsonArray.build();
    return jsonArray;
}
Run Code Online (Sandbox Code Playgroud)