Gson is required to return Java jsonarray

I can't return jsonarray, but my object seems to be a string The value of myArray is the same as that of jsonstring The object is a string object, not a jsonarray And jsonstring and myArray PRNT:

[{"id":"100002930603211","name":"Aardvark Jingleheimer","picture":"shortenedExample.jpg" },{"id":"537815695","name":"Aarn Mc","picture":"shortendExample.jpg" },{"id":"658471072","name":"Adrna opescu","picture":"shortenedExample.jpg"
}]

How to convert it to an actual Java jsonarray? thank you!

//arrPersons is an ArrayList

        Gson gson = new Gson();
        String jsonString = gson.toJson(arrPersons);

        JsonParser parser = new JsonParser();
        JsonElement myElement = parser.parse(jsonString);
        JsonArray myArray = myElement.getAsJsonArray();

Solution

I think you can do what you want without writing out the JSON string and Rereading It:

List<Person> arrPersons = new ArrayList<Person>();

// populate your list

Gson gson = new Gson();
JsonElement element = gson.toJsonTree(arrPersons,new TypeToken<List<Person>>() {}.getType());

if (! element.isJsonArray()) {
// fail appropriately
    throw new SomeException();
}

JsonArray jsonArray = element.getAsJsonArray();
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>