zoukankan      html  css  js  c++  java
  • 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格式啦!

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

  • 相关阅读:
    Linux libcurl使用 (收藏)
    公钥和私钥与认证和签名
    fedora下配置ipv6 dns服务器
    SHA1
    linux IP 命令
    SSL/TLS协议簇加解密流程
    MD5算法实现原理
    container_of深入理解
    diff和patch使用指南
    oracle 笔记
  • 原文地址:https://www.cnblogs.com/lianggegege123/p/14195148.html
Copyright © 2011-2022 走看看