gson如何自定义生成json(嵌套json)
我们都知道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格式啦!
加油,平凡的程序员!!!!