First, create a class that represents a single json object, e.g.:

class MyObject {
    private String image;

    public MyObject(String name) { image = name; }
}

Gson will use the class' variable names to determine what property names to use.

Then create an array or list of these using the data you have available, e.g.

ArrayList<MyObject> allItems = new ArrayList<>();
allItems.add(new MyObject("name1"));
allItems.add(new MyObject("name2"));
allItems.add(new MyObject("name3"));

Finally, to serialize to Json, do:

String json = new Gson().toJson(allItems);

And to get the data back from json to an array:

MyObject[] items = new Gson().fromJson(json, MyObject[].class);

For simple (de)serialization, there is no need to be dealing directly with Json classes.

Answer from Allen G on Stack Overflow
🌐
Java Tips
javatips.net › api › com.google.gson.jsonarray
Java Examples for com.google.gson.JsonArray - Javatips.net
@Override public List<Comic> deserialize(JsonElement je, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { Type listType = new TypeToken<List<Comic>>() { }.getType(); JsonElement data = je.getAsJsonObject().get("data"); JsonElement results = je.getAsJsonObject().get("results"); JsonArray resultsArray = results.getAsJsonArray(); JsonElement comicsObject = resultsArray.get(0); JsonElement items = comicsObject.getAsJsonObject().get("items"); return new Gson().fromJson(items, listType); }
🌐
Program Creek
programcreek.com › java-api-examples
com.google.gson.JsonArray Java Exaples
public static ArrayList<Product> parseJsonArray(JsonArray jsonArray) { ArrayList<Product> products = new ArrayList<>(jsonArray.size()); Gson gson = new Gson(); for (int i=0 ; i<jsonArray.size() ; i++) { JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); Product product = ...
🌐
Javased
javased.com
Java Code Examples of com.google.gson.JsonArray
*/ private <V>V queryValue(Class<V> classOfV){ InputStream instream=null; try { Reader reader=new InputStreamReader(instream=queryForStream()); JsonArray array=new JsonParser().parse(reader).getAsJsonObject().get("rows").getAsJsonArray(); if (array.size() != 1) { throw new NoDocumentException("Expecting exactly a single result of this view query, but was: " + array.size()); } return JsonToObject(gson,array.get(0),"value",classOfV); } finally { close(instream); } } ... From project OpenID-Connect-Java-Spring-Server, under directory /openid-connect-common/src/main/java/org/mitre/key/fetch/.
🌐
Program Creek
programcreek.com › java-api-examples › com.google.gson.JsonArray
com.google.gson.JsonArray Java Examples
public static ArrayList<Product> parseJsonArray(JsonArray jsonArray) { ArrayList<Product> products = new ArrayList<>(jsonArray.size()); Gson gson = new Gson(); for (int i=0 ; i<jsonArray.size() ; i++) { JsonObject jsonObject = jsonArray.get(i).getAsJsonObject(); Product product = ...
🌐
Mkyong
mkyong.com › home › java › how to parse json array using gson
How to parse JSON Array using Gson | mkyong.com
May 17, 2024 - The following example uses Gson to convert a JSON array to the List<Item>. GsonParseJsonArrayExample1.java · package com.mkyong.json.gson; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import com.mkyong.json.gson.m...
🌐
HowToDoInJava
howtodoinjava.com › home › gson › gson – parse json array to java array or list
Gson - Parse JSON Array to Java Array or List
April 4, 2023 - String userJson = "[{'name': 'Alex','id': 1}, " + "{'name': 'Brian','id':2}, " + "{'name': 'Charles','id': 3}]"; Gson gson = new Gson(); Type userListType = new TypeToken<ArrayList<User>>(){}.getType(); ArrayList<User> userArray = ...
🌐
Javadoc.io
javadoc.io › doc › com.google.code.gson › gson › 2.6.2 › com › google › gson › JsonArray.html
JsonArray - gson 2.6.2 javadoc
Latest version of com.google.code.gson:gson · https://javadoc.io/doc/com.google.code.gson/gson · Current version 2.6.2 · https://javadoc.io/doc/com.google.code.gson/gson/2.6.2 · package-list path (used for javadoc generation -link option) https://javadoc.io/doc/com.google.code.gson/gson/2.6.2/package-list ·
🌐
GitHub
github.com › google › gson › blob › main › gson › src › main › java › com › google › gson › JsonArray.java
gson/gson/src/main/java/com/google/gson/JsonArray.java at main · google/gson · GitHub
import com.google.gson.internal.NonNullElementWrapperList; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; import java.util.Iterator; import java.util.List; · /** * A class representing an array type in JSON. An array is a list of {@link JsonElement}s each of ·
Author: google
Find elsewhere
Top answer
1 of 9
276

You can parse the JSONArray directly, don't need to wrap your Post class with PostEntity one more time and don't need new JSONObject().toString() either:

Gson gson = new Gson();
String jsonOutput = "Your JSON String";
Type listType = new TypeToken<List<Post>>(){}.getType();
List<Post> posts = gson.fromJson(jsonOutput, listType);
2 of 9
8

I was looking for a way to parse object arrays in a more generic way; here is my contribution:

CollectionDeserializer.java:

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException;

public class CollectionDeserializer implements JsonDeserializer<Collection<?>> {

    @Override
    public Collection<?> deserialize(JsonElement json, Type typeOfT,
            JsonDeserializationContext context) throws JsonParseException {
        Type realType = ((ParameterizedType)typeOfT).getActualTypeArguments()[0];

        return parseAsArrayList(json, realType);
    }

    /**
     * @param serializedData
     * @param type
     * @return
     */
    @SuppressWarnings("unchecked")
    public <T> ArrayList<T> parseAsArrayList(JsonElement json, T type) {
        ArrayList<T> newArray = new ArrayList<T>();
        Gson gson = new Gson();

        JsonArray array= json.getAsJsonArray();
        Iterator<JsonElement> iterator = array.iterator();

        while(iterator.hasNext()){
            JsonElement json2 = (JsonElement)iterator.next();
            T object = (T) gson.fromJson(json2, (Class<?>)type);
            newArray.add(object);
        }

        return newArray;
    }

}

JSONParsingTest.java:

public class JSONParsingTest {

    List<World> worlds;

    @Test
    public void grantThatDeserializerWorksAndParseObjectArrays(){

        String worldAsString = "{\"worlds\": [" +
            "{\"name\":\"name1\",\"id\":1}," +
            "{\"name\":\"name2\",\"id\":2}," +
            "{\"name\":\"name3\",\"id\":3}" +
        "]}";

        GsonBuilder builder = new GsonBuilder();
        builder.registerTypeAdapter(Collection.class, new CollectionDeserializer());
        Gson gson = builder.create();
        Object decoded = gson.fromJson((String)worldAsString, JSONParsingTest.class);

        assertNotNull(decoded);
        assertTrue(JSONParsingTest.class.isInstance(decoded));

        JSONParsingTest decodedObject = (JSONParsingTest)decoded;
        assertEquals(3, decodedObject.worlds.size());
        assertEquals((Long)2L, decodedObject.worlds.get(1).getId());
    }
}

World.java:

public class World {
    private String name;
    private Long id;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

}
🌐
TutorialsPoint
tutorialspoint.com › article › how-to-convert-java-array-or-arraylist-to-jsonarray-using-gson-in-java
How to convert Java array or ArrayList to JsonArray using Gson in Java?
July 8, 2020 - We can convert an array or ArrayList to JsonArray using the toJsonTree().getAsJsonArray() method of Gson class. public JsonElement toJsonTree(java.lang.Object src) import com.google.gson.*; import java.util.*; public class JavaArrayToJsonArrayTest { public static void main(String args[]) { String[][] strArray = {{"elem1-1", "elem1-2"}, {"elem2-1", "elem2-2"}}; ArrayList<ArrayList<String>> arrayList = new ArrayList<>(); for(int i = 0; i < strArray.length; i++) { ArrayList<String> nextElement = new ArrayList<>(); for(int j = 0; j < strArray[i].length; j++) { nextElement.add(strArray[i][j] + "-B"
Top answer
1 of 4
3

hi if your json looks like this

{"status": "success",
"data": [
  {
    "trip_id": "5",
    "ride_id": "5",
    "start_location": "8 Rd No 14, Dhaka 1209, Bangladesh",
    "end_location": "Uttara Dhaka, Dhaka Division, Bangladesh",
    "date": "2017-03-14 17:36 PM",
    "time_from": "1489491394079.5322 ",
    "time_to": "1489493194079.5322 ",
    "status": 5,
    "trip_earn": "",
    "currency": "CAD"

  },
{
        "trip_id": "5",
        "ride_id": "5",
        "start_location": "8 Rd No 14, Dhaka 1209, Bangladesh",
        "end_location": "Uttara Dhaka, Dhaka Division, Bangladesh",
        "date": "2017-03-14 17:36 PM",
        "time_from": "1489491394079.5322 ",
        "time_to": "1489493194079.5322 ",
        "status": 5,
        "trip_earn": "",
        "currency": "CAD"

      }
]
}

then your write a class like that for parsign the data

public class Example {

@SerializedName("status")
@Expose
private String status;
@SerializedName("data")
@Expose
private List<Datum> data = null;

public String getStatus() {
return status;
}

public void setStatus(String status) {
this.status = status;
}

public List<Datum> getData() {
return data;
}

public void setData(List<Datum> data) {
this.data = data;
}

}

and

public class Datum {

@SerializedName("trip_id")
@Expose
private String tripId;
@SerializedName("ride_id")
@Expose
private String rideId;
@SerializedName("start_location")
@Expose
private String startLocation;
@SerializedName("end_location")
@Expose
private String endLocation;
@SerializedName("date")
@Expose
private String date;
@SerializedName("time_from")
@Expose
private String timeFrom;
@SerializedName("time_to")
@Expose
private String timeTo;
@SerializedName("status")
@Expose
private Integer status;
@SerializedName("trip_earn")
@Expose
private String tripEarn;
@SerializedName("currency")
@Expose
private String currency;

public String getTripId() {
return tripId;
}

public void setTripId(String tripId) {
this.tripId = tripId;
}

public String getRideId() {
return rideId;
}

public void setRideId(String rideId) {
this.rideId = rideId;
}

public String getStartLocation() {
return startLocation;
}

public void setStartLocation(String startLocation) {
this.startLocation = startLocation;
}

public String getEndLocation() {
return endLocation;
}

public void setEndLocation(String endLocation) {
this.endLocation = endLocation;
}

public String getDate() {
return date;
}

public void setDate(String date) {
this.date = date;
}

public String getTimeFrom() {
return timeFrom;
}

public void setTimeFrom(String timeFrom) {
this.timeFrom = timeFrom;
}

public String getTimeTo() {
return timeTo;
}

public void setTimeTo(String timeTo) {
this.timeTo = timeTo;
}

public Integer getStatus() {
return status;
}

public void setStatus(Integer status) {
this.status = status;
}

public String getTripEarn() {
return tripEarn;
}

public void setTripEarn(String tripEarn) {
this.tripEarn = tripEarn;
}

public String getCurrency() {
return currency;
}

public void setCurrency(String currency) {
this.currency = currency;
}

}

use like

Gson gson = new Gson();
String jsonInString = "{\"userId\":\"1\",\"userName\":\"chayon\"}";
Example user= gson.fromJson(jsonInString, Example.class);
user.getdata().get(position)
2 of 4
1

Create a Response POJO classes using jsonschema2pojo.

Add GSON dependency in your build.gradle

dependencies {
  compile 'com.google.code.gson:gson:2.8.0'
}

Convert your json to specific pojo class as below:

Gson gson = new GsonBuilder().create();
        Response response = gson.fromJson(response, Response.class);

Thanks!

🌐
Javadoc.io
javadoc.io › doc › com.google.code.gson › gson › latest › com.google.gson › com › google › gson › JsonArray.html
JsonArray - gson 2.14.0 javadoc
Latest version of com.google.code.gson:gson · https://javadoc.io/doc/com.google.code.gson/gson · Current version 2.14.0 · https://javadoc.io/doc/com.google.code.gson/gson/2.14.0 · package-list path (used for javadoc generation -link option) https://javadoc.io/doc/com.google.code.gson/gson/2.14.0/package-list ·
🌐
HowToDoInJava
howtodoinjava.com › home › gson › gson jsonparser
Gson JsonParser (with Examples) - HowToDoInJava
2 weeks ago - From a JsonObject or a JsonArray, we extract the values with the method get(). A conversion to the wrong type throws an exception, e.g. getAsJsonObject() on an array throws an IllegalStateException, so we check the type first when the JSON comes from outside our app. The following program parses the JSON into a JsonElement (and a JsonObject) with JsonParser and reads the JSON values by key. import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; public class JsonElementExample { public static void main(String[] args) { String json = "{'id': 100
🌐
Medium
medium.com › @alexandre.therrien3 › personalized-serializer-and-deserializer-using-java-gson-library-c079de3974d4
Building a Personalized Serializer and Deserializer using Java Gson Library | by Alex Therrien | Medium
June 2, 2020 - You can look here for examples, although I feel having it explained would be a lot simpler. The skeleton of any Gson Serializer resumes to this: import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import java.lang.reflect.Type; /** * * @author user */ public class SomeSerializer implements JsonSerializer<SomeObject> { public JsonElement serialize(SomeObject someObject, Type type, JsonSerializationContext jsonSerializationContext) { } } (Code block 1.1) Where SomeObject is the object that you desire to read to put into a JSON file.
🌐
Java Code Geeks
javacodegeeks.com › home › core java
Converting JSON Array to Java List with Gson - Java Code Geeks
April 25, 2024 - We parse a JSON array into a JsonArray using Gson’s JsonParser. Then, we iterate over each element of the array, converting them into Java objects using Gson’s fromJson() method. Finally, we add each Java object to a List.