package com.levelup.java.json; import static org.junit.Assert.assertEquals; import java.lang.reflect.Type; import java.util.List; import org.apache.log4j.Logger; import org.junit.Test; import com.google.common.collect.Lists; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.google.gson.GsonBuilder; /** * This java example will demonstrate converting json to java arraylist using * gson . * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/convert-json-array-to-arraylist-gson/'>Json array to ArrayList gson</a> */ public class JsonArrayToObjectArrayGson { private static final Logger logger = Logger .getLogger(JsontoJavaObject.class); String jsonString = "[ { \"key\":\"Level up lunch\", \"url\":\"www.leveluplunch.com\" }, { \"key\":\"Java examples\", \"url\":\"www.leveluplunch.com/java/examples/\" }, { \"key\":\"Java exercises\", \"url\":\"www.leveluplunch.com/java/exercises/\" }, { \"key\":\"Java tutorials\", \"url\":\"www.leveluplunch.com/java/tutorials/\" }]"; static class NavItem { public NavItem() { } private String key; private String url; public String getKey() { return key; } public void setKey(String key) { this.key = key; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } @Override public String toString() { return com.google.common.base.Objects.toStringHelper(this) .add("key", key).add("url", url).toString(); } } @Test public void convert_list_to_json() { NavItem item1 = new NavItem(); item1.setKey("examples"); item1.setUrl("http://leveluplunch.com/java/examples"); NavItem item2 = new NavItem(); item2.setKey("exercises"); item2.setUrl("http://leveluplunch.com/java/exercises"); List<NavItem> navigation = Lists.newArrayList(item1, item2); Gson gson = new GsonBuilder() // .setPrettyPrinting() .create(); String arrayListToJson = gson.toJson(navigation); logger.info(arrayListToJson); assertEquals( "[{\"key\":\"examples\",\"url\":\"http://leveluplunch.com/java/examples\"}," + "{\"key\":\"exercises\",\"url\":\"http://leveluplunch.com/java/exercises\"}]", arrayListToJson); } @Test public void convert_json_to_array_or_list() { Gson gson = new Gson(); NavItem[] navigationArray = gson.fromJson(jsonString, NavItem[].class); logger.info(navigationArray); assertEquals(4, navigationArray.length); // or @SuppressWarnings("serial") Type collectionType = new TypeToken<List<NavItem>>() { }.getType(); List<NavItem> navigation = gson.fromJson(jsonString, collectionType); logger.info(navigation); assertEquals(4, navigation.size()); } }