====== Basic Gson ====== ===== Add Gson Dependency ===== com.google.code.gson gson 2.8.5 ===== Assumption ===== Assume we have a Company class, and a Staff class such that Company has a name, a start date, and a list of staff, and the staff has a name, and a salary field. We use the following code to create the Java objects. Company company = new Company(); company.setName("ABC Company"); company.setStartDate(new Date()); Staff staff1 = new Staff(); staff1.setName("Staff 1"); staff1.setSalary(10000.0); Staff staff2 = new Staff(); staff2.setName("Staff 2"); staff2.setSalary(20000.0); Staff staff3 = new Staff(); staff3.setName("Staff 3"); staff3.setSalary(30000.0); Staff staff4 = new Staff(); staff4.setName("Staff 4"); staff4.setSalary(40000.0); List list = new ArrayList(); list.add(staff1); list.add(staff2); list.add(staff3); list.add(staff4); company.setStaffs(list); ===== To Json ===== Gson gson = new Gson(); String json = gson.toJson(company); System.out.println(json); The result would be {"name":"ABC Company","startDate":"Aug 13, 2019 2:39:50 PM","staffs":[{"name":"Staff 1","salary":10000.0},{"name":"Staff 2","salary":20000.0},{"name":"Staff 3","salary":30000.0},{"name":"Staff 4","salary":40000.0}]} ===== From Json ===== Assume we user the output from above to create a Company object: Company testCompany = gson.fromJson(json, Company.class);