我們都知道json最常見的就是:
{key1 : value1, key2 : value2, ... keyN : valueN }
這種類型的json我們可以使用一下方法就可以很容易的將list集合轉換為json:
//一個簡單的javabean user user=new user(); user.setName("亮亮"); user.setAge(10); user.setSex("男"); //將這個JavaBean存入list集合中 List<user> list=new ArrayList<user>(); list.add(user); //使用gson將其轉化 Gson gson1Gson=new Gson(); String json=gson1Gson.toJson(list); System.out.println(json); //生成效果 [{"name":"亮亮","age":10,"sex":"男"}]
然而對應的,在更多時候我們需要的不是這種簡單的json格式,更多的是我們需要生成多層嵌套的json:
{"data":[{"name":"亮亮","age":10,"sex":"男"},{"name":"亮亮","age":10,"sex":"男"}],"links":[{"qidian":"1","zhogndian":"2"},{"qidian":"3","zhogndian":"3"}]}
對於這樣的json我們就需要明白,如何實現這種嵌套的,很明顯map集合可以加入list,既然可以加入,我們就很容易想到map集合有這樣一個方法
map.put("data", list);
所以我們只需要將JavaBean中的內容存入對應的list集合中,然后在使用map集合的put方法給對應的list起一個名字!
so so so直接給代碼!
package Method; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.omg.CORBA.PRIVATE_MEMBER; import com.google.gson.Gson; import com.google.gson.JsonObject; import Bean.student; import Bean.user; public class gson自定義解析規則練習 { public static void main(String []args) { user user=new user(); user.setName("亮亮"); user.setAge(10); user.setSex("男"); user user3=new user(); user3.setName("亮亮"); user3.setAge(10); user3.setSex("男"); student student=new student(); student.setQidian("1"); student.setZhogndian("2"); student student1=new student(); student1.setQidian("3"); student1.setZhogndian("3"); List<user> list=new ArrayList<user>(); list.add(user); Gson gson1Gson=new Gson(); String json=gson1Gson.toJson(list); //System.out.println(json); list.add(user3); List<student> list2=new ArrayList<student>(); list2.add(student); list2.add(student1); Map map= new HashMap<>(); map.put("data", list); map.put("links", list2); Gson gson=new Gson(); String str=gson.toJson(map); System.out.println(str); } }
至於其他的json完全可以通過這種自定義的操作,生成自己需要的json格式啦!
加油,平凡的程序員!!!!