java gson生成json_gson如何自定义生成json(嵌套json)

我们都知道json最常见的就是:

{key1 :value1,key2 :value2,...keyN :valueN }

这种类型的json我们可以使用一下方法就可以很容易的将list集合转换为json:

//一个简单的javabean

user user=newuser();

user.setName("亮亮");

user.setAge(10);

user.setSex("男");//将这个JavaBean存入list集合中

List list=new ArrayList();

list.add(user);//使用gson将其转化

Gson gson1Gson=newGson();

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 classgson自定义解析规则练习 {public static voidmain(String []args) {

user user=newuser();

user.setName("亮亮");

user.setAge(10);

user.setSex("男");

user user3=newuser();

user3.setName("亮亮");

user3.setAge(10);

user3.setSex("男");

student student=newstudent();

student.setQidian("1");

student.setZhogndian("2");

student student1=newstudent();

student1.setQidian("3");

student1.setZhogndian("3");

List list=new ArrayList();

list.add(user);

Gson gson1Gson=newGson();

String json=gson1Gson.toJson(list);//System.out.println(json);

list.add(user3);

List list2=new ArrayList();

list2.add(student);

list2.add(student1);

Map map= new HashMap<>();

map.put("data", list);

map.put("links", list2);

Gson gson=newGson();

String str=gson.toJson(map);

System.out.println(str);

}

}

至于其他的json完全可以通过这种自定义的操作,生成自己需要的json格式啦!

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值