我需要從JsonObjects的java.util.List中創建一個javax.json.JsonArray對象(Java EE 7 API)。 以前,使用JSON API,當我用做它用簡單:從列表創建JsonArray
JSONArray jsonArray = new JSONArray(list);
但我可以看到有一個在javax.json.JsonArray沒有等價的構造。 有沒有一個簡單的方法(除了瀏覽所有列表)來做到這一點?
謝謝
我需要從JsonObjects的java.util.List中創建一個javax.json.JsonArray對象(Java EE 7 API)。 以前,使用JSON API,當我用做它用簡單:從列表創建JsonArray
JSONArray jsonArray = new JSONArray(list);
但我可以看到有一個在javax.json.JsonArray沒有等價的構造。 有沒有一個簡單的方法(除了瀏覽所有列表)來做到這一點?
謝謝
不幸的是,標準的JsonArrayBuilder不會將列表作爲輸入。所以你需要遍歷列表。
我不知道你的列表的樣子,但你可以做出這樣一個功能:
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;
}
謝謝。看起來這是做到這一點的唯一方法。 – user2824073
如果有人在如何與Java 8流做到這一點interessted。相同的代碼片段:
public JsonArray createJsonArrayFromList(List<Person> list) {
JsonArray jsonArray = Json.createArrayBuilder();
list.stream().forEach(person -> jsonArray.add(Json.createObjectBuilder()
.add("firstname", person.getFirstName())
.add("lastname", person.getLastName())));
jsonArray.build();
return jsonArray;
}
javadoc包含示例... – fge
本例中的list是什麼? – Bex
已經選中。但Javadoc包含以下示例:JsonArray value = Json.createArrayBuilder() .add(Json.createObjectBuilder() .add(「type」,「home」) .add(「number」,「212 555-1234」 )) .add(Json.createObjectBuilder() .add(「type」,「fax」) .add(「number」,「646 555-4567」)) .build();這不是我所問 - 我已經有一個列表 –
user2824073