Create Json Arrays with Streams

This post shows how to create a cool JavaEE 7 JsonArray using Java 8 streams.

In the “old” days we had to iterate through a collection of objects with primitive instructions such as for and while (imperative style). Java 8 allows you to build JsonArrays with Stream reduce terminal operation - collect.

Cool JsonArray Builder

    public Response listPeople() {

        // get people list data
        List<JsonObject> peopleJson = sampleData();

        // using java 8 streams and method references
        JsonArray jsonArray =
                .collect(Json::createArrayBuilder, JsonArrayBuilder::add, JsonArrayBuilder::add)

        return Response.ok(jsonArray).build();

Written on May 3, 2017