import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.gson.Gson; public class GsonTest { public static void main(String[] args) { Gson g = new Gson();
Map<String,Object> map = new HashMap<String,Object>();
//添加两个普通节点
map.put("a","1");
map.put("b",2); //添加一个list1 => "list1":[{"c":"3","d":4}]
Map<String,Object> m5 = new HashMap<String,Object>();
List<Object> l = new ArrayList<Object>();
m5.put("c","3");
m5.put("d",4);
l.add(m5);
map.put("list1",l); //添加一个map1 =>"map1":{"e":"5","f":"6"}
Map<String,Object> m2 = new HashMap<String,Object>();
m2.put("e","5");
m2.put("f","6");
map.put("map1",m2); //添加一个list2 => "list2":[{"g":"7","h":8},{"g":"9","h":10}]
List<Object> l2 = new ArrayList<Object>();
Map<String,Object> m3 = new HashMap<String,Object>();
Map<String,Object> m4 = new HashMap<String,Object>();
m3.put("g","7");
m3.put("h",8);
m4.put("g","9");
m4.put("h",10);
l2.add(m3);
l2.add(m4);
map.put("list2",l2); //添加一个map2 => "map2":{"i":"5","j":[{"j":"5","k":"5"}],"l":{"j":"5","k":"5"}}
Map<String,Object> m6 = new HashMap<String,Object>();
List<Object> l3 = new ArrayList<Object>();
Map<String,Object> m7 = new HashMap<String,Object>();
m6.put("i","5"); m7.put("j","5");
m7.put("k","5");
m6.put("l",m7); l3.add(m7);
m6.put("j",l3);
map.put("map2",m6); //转换成JSON格式内容
String s = g.toJson(map);
System.out.println(s); } }

输出

{"list1":[{"c":"3","d":4}],"a":"1","b":2,"map2":{"i":"5","j":[{"j":"5","k":"5"}],"l":{"j":"5","k":"5"}},"map1":{"e":"5","f":"6"},"list2":[{"g":"7","h":8},{"g":"9","h":10}]}

 {
"list1":[
{
"c":"3",
"d":4
}
],
"a":"1",
"b":2,
"map2":{
"i":"5",
"j":[
{
"j":"5",
"k":"5"
}
],
"l":{
"j":"5",
"k":"5"
}
},
"map1":{
"e":"5",
"f":"6"
},
"list2":[
{
"g":"7",
"h":8
},
{
"g":"9",
"h":10
}
]
}

Gson应用:利用map和list来拼装Json消息的更多相关文章

  1. C#拼装JSON数组简易方法

    下面是我们想要拼接出来的JSON字符串,返回给前台 {"success":"true","msg":"","d ...

  2. RTSP 消息拼装实例代码

    整理了下之前文章提到的RTSP实例的代码,主要是拼装各类消息字段. 首先,抽取一个公共函数,用来根据消息类型,生成不同的format,供sprintf试用. char * GetRTSPCmd( co ...

  3. Java-map-第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯,则输出:没有举办世界杯。 附:世界杯冠军以及对应的夺冠年份,请参考本章附录。 附录

    第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年 ...

  4. zk框架中利用map类型传值来创建window,并且传值

    @Command @NotifyChange("accList") public void clear(@BindingParam("id") String a ...

  5. 使用Map辅助拼装树状结构,消除递归调用

    目前菜单或其他树状结构在数据库中的存储,多数是以一个parentid作为关联字段,以一维形式存储.使用时全部查询出来,然后在内存中拼装成树状结构.现在主要涉及的是拼装方法的问题. 一般可以进行 递归调 ...

  6. 将map中的查询参数拼装到URL路径中

    被调接口的URL路径: //被调接口url String apiUrl = "http://api.open.xxxxxx.com/implatform/interview/send?acc ...

  7. 利用阿里巴巴封装的FastJSON来解析json并转换成map

    利用阿里巴巴封装的FastJSON来解析json并转换成map   package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; i ...

  8. 利用MAP动态创建C++类对象

    MFC的CRuntimeClass利用链表实现了C++类的动态创建.但是如果项目中对动态创建的要求比较低,我们完全可以利用map实现简单的动态创建. http://blog.csdn.net/yeji ...

  9. Java 利用Map集合计算一个字符串中每个字符出现的次数

    步骤分析 1.给出一串字符串,字符串中可以包含字母.数字.符号等等. 2.创建一个Map集合,key是字符串中的字符,value是字符的个数. 3.遍历字符串,获取每一个字符. 5.使用获取到的字符, ...

随机推荐

  1. hdu 5475 线段树

    An easy problem Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  2. java中的向上转型

    Person 可以表示为一个抽象的东西 就是人.比如说人可以唱歌, 就好比Person类中有一个sing方法.那么这个抽象的类(Person 人)可以具体到两类或者更多类 比如 男人,女人 .Man ...

  3. Linux- 关于windows和Linux和Mac的换行符

    windows 的换行符为"\r\n" Linux的换行符为"\n" Mac的换行符为"\n\r",和Windows相反

  4. 百度地图省市县乡镇街道对应ZOOM级别

    百度地图省市县乡镇街道对应ZOOM级别

  5. Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示

    Delphi 读取 c# webservice XML的base64编码图片字符串转化图片并显示 在 开发中遇到应用c#及asp.net的在的webservice 保存图片并以xml文件形式现实出来 ...

  6. leetcode 226. Invert Binary Tree(递归)

    Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Trivia:This problem was ...

  7. Ffmpeg移植S3C2440

    Ffmpeg移植过程: FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证.它的移植同样遵循LGPL或GPL移植方法:configure.make.make ...

  8. 1.4 isAlive()方法

    方法isAlive()是判断当前线程是否处于活动状态. 线程代码: public class TestThread extends Thread{ @Override public void run( ...

  9. 【转】 Pro Android学习笔记(二八):用户界面和控制(16):GridLayout

    网格布局:GridLayout 我个人觉得GridLayout的设计还不很完善,每个网格的大小,由填充的cell决定,即默认是wrap很容易整个GridLayout超出屏幕.下面是一个例子: < ...

  10. Nginx正则表达式之匹配操作符详解

    nginx可以在配置文件中对某些内置变量进行判断,从而实现某些功能.例如:防止rewrite.盗链.对静态资源设置缓存以及浏览器限制等等.由于nginx配置中有if指令,但是没有对应else指令,所以 ...