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. 投影矩阵、最小二乘法和SVD分解

    投影矩阵广泛地应用在数学相关学科的各种证明中,但是由于其概念比较抽象,所以比较难理解.这篇文章主要从最小二乘法的推导导出投影矩阵,并且应用SVD分解,写出常用的几种投影矩阵的形式. 问题的提出 已知有 ...

  2. python第八篇:十分钟学会Flask

    什么是Flask Flask是一个基于Python并且依赖于Jinja2模板引擎和Werkzeug WSGI服务的一个微型框架 Flask中包含一个轻量级的web 服务器主要用于在开发阶段测试使用 F ...

  3. Python基础-操作mysql

    mysql 属于第三方模块,需要先安装 pip install pymysql,sql执行后,数据获取函数有三种cur.fetchone()#获取第一条数据,依次类推下去,第二次执行时候,就会取除去第 ...

  4. python-Django收集主机信息

    1.创建工程simplecmdb django-admin.py startproject simplecmdb 2.创建应用 cd simplecmdb python manage.py start ...

  5. Android开发中高效的数据结构

    android开发中,在java2ee或者android中常用的数据结构有Map,List,Set,但android作为移动平台,有些api(很多都是效率问题)显然不够理想,本着造更好轮子的精神,an ...

  6. 在Windows下编译WebRTC

    前言 这篇文章的目的在于为你节省生命中宝贵的10小时(甚至更多),或者浪费你10分钟.作为Google更新频繁的大型跨平台基础库,WebRTC的编译一直被人称为噩梦.如果恰巧你偏要在Windows下编 ...

  7. uoj problem 31 猪猪侠再战括号序列

    题目大意: 给定一个长度为2n的括号序列.定义一个关于区间[l,r]的翻转操作为位置平移对调. 即翻转")))()("可以得到"()()))((" 用不超过n次 ...

  8. Poj 1973 Software Company(二分+并行DP)

    题意:软件公司接了两个项目,来自同一个合同,要一起交付.该公司有n个程序猿来做这两个项目A和B,每个项目都被分为m个子项目,给定每个程序猿做一个A中的子项目需要的时间Xi秒,和做B中的子项目所需时间Y ...

  9. POJ 2017 No Brainer(超级水题)

    一.Description Zombies love to eat brains. Yum. Input The first line contains a single integer n indi ...

  10. HDU1698(线段树入门题)

    Just a Hook Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Descrip ...