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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM