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格式啦!

 

加油,平凡的程序员!!!!

 

posted @ 2020-12-27 00:46  程序员亮亮丫!!  阅读(666)  评论(0编辑  收藏  举报