Create JSON String Array from Java List

Carla :


I have a java.util.List containing Java POJOs that I want to render as JSON Array String. For example:

[
  { "name": "abc", "age": 50 },
  { "name": "def", "age": "25" }
];

Using Java EE JSON Api I have added:

public String createJsonArrayFromList(List<Person> list) {
    JsonArrayBuilder jsonArray = Json.createArrayBuilder();
    for(Person c : list) {
        jsonArray.add(Json.createObjectBuilder()
                .add("name", c.getName())
                .add("surname", c.getSurname()));
    }
    JsonArray array =jsonArray.build();
    return array.toString();
}

However, what is returned is not the JSON String array but "org.glassfish.json.JsonArrayBuilderImpl@761c5d2f"

I have attemped with:

StringWriter buffer = new StringWriter();
Json.createWriter(buffer).writeObject(array);

But writeObject expects a different object type rather than JsonArray. Any help?

user11044402 :

Use writeArray instead of writeObject:

JsonArray arr = ...;
JsonWriter writer = Json.createWriter(...)
writer.writeArray(arr);
writer.close();

See the docs.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=327145&siteId=1