Gson应用:利用map和list来拼装Json消息

 1  2
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7 import com.google.gson.Gson;
 8
 9 public class GsonTest {
10
11     public static void main(String[] args) {
12
13         Gson g = new Gson();
14         Map<String,Object> map = new HashMap<String,Object>();
15         //添加两个普通节点
16         map.put("a","1");
17         map.put("b",2);
18
19         //添加一个list1 => "list1":[{"c":"3","d":4}]
20         Map<String,Object> m5 = new HashMap<String,Object>();
21         List<Object> l = new ArrayList<Object>();
22         m5.put("c","3");
23         m5.put("d",4);
24         l.add(m5);
25         map.put("list1",l);
26
27         //添加一个map1 =>"map1":{"e":"5","f":"6"}
28         Map<String,Object> m2 = new HashMap<String,Object>();
29         m2.put("e","5");
30         m2.put("f","6");
31         map.put("map1",m2);
32
33         //添加一个list2 => "list2":[{"g":"7","h":8},{"g":"9","h":10}]
34         List<Object> l2 = new ArrayList<Object>();
35         Map<String,Object> m3 = new HashMap<String,Object>();
36         Map<String,Object> m4 = new HashMap<String,Object>();
37         m3.put("g","7");
38         m3.put("h",8);
39         m4.put("g","9");
40         m4.put("h",10);
41         l2.add(m3);
42         l2.add(m4);
43         map.put("list2",l2);
44
45
46         //添加一个map2 => "map2":{"i":"5","j":[{"j":"5","k":"5"}],"l":{"j":"5","k":"5"}}
47         Map<String,Object> m6 = new HashMap<String,Object>();
48         List<Object> l3 = new ArrayList<Object>();
49         Map<String,Object> m7 = new HashMap<String,Object>();
50         m6.put("i","5");
51
52         m7.put("j","5");
53         m7.put("k","5");
54         m6.put("l",m7);
55
56         l3.add(m7);
57         m6.put("j",l3);
58         map.put("map2",m6);
59
60
61         //转换成JSON格式内容
62         String s = g.toJson(map);
63         System.out.println(s);
64
65     }
66
67 }

输出

{"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}]}

 1 {
 2     "list1":[
 3         {
 4             "c":"3",
 5             "d":4
 6         }
 7     ],
 8     "a":"1",
 9     "b":2,
10     "map2":{
11         "i":"5",
12         "j":[
13             {
14                 "j":"5",
15                 "k":"5"
16             }
17         ],
18         "l":{
19             "j":"5",
20             "k":"5"
21         }
22     },
23     "map1":{
24         "e":"5",
25         "f":"6"
26     },
27     "list2":[
28         {
29             "g":"7",
30             "h":8
31         },
32         {
33             "g":"9",
34             "h":10
35         }
36     ]
37 }
时间: 2024-08-05 15:25:16

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

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

第一题 (Map)利用Map,完成下面的功能: 从命令行读入一个字符串,表示一个年份,输出该年的世界杯冠军是哪支球队.如果该 年没有举办世界杯,则输出:没有举办世界杯. 附:世界杯冠军以及对应的夺冠年份,请参考本章附录. 附录 历届世界杯冠军 届数 举办年份 举办地点 冠军 第一届 1930年 乌拉圭 乌拉圭 第二届 1934年 意大利 意大利 第三届 1938年 法国 意大利 第四届 1950年 巴西 乌拉圭 第五届 1954年 瑞士 西德 第六届 1958年 瑞典 巴西 第七届 1962年

利用map和reduce编写一个str2float函数,把字符串&#39;123.456&#39;转换成浮点数123.456:

from functools import reduce CHAR_TO_FLOAT = { '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9, '.': -1 } def str2float(s): nums=map(lambda x:CHAR_TO_FLOAT[x],s) #print(list(nums)) point = 0 def str_division(f,n): nonlo

【cas】利用Map返回更多信息

在cas中默认获取的用户信息为登录时填写的登录用户名,但是如果我不想返回登录的用户名,返回其他的信息呢? 一.将登录用户的id作为默认值 显示 首先在cas server中找到deployerConfigContext.xml配置文件中关于认证信息配置的地方即name="credentialsToPrincipalResolvers",这里是 关于返回用户信息所对应的类.默认执行的是下面这个类. <bean class="org.jasig.cas.authentica

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

目前菜单或其他树状结构在数据库中的存储,多数是以一个parentid作为关联字段,以一维形式存储.使用时全部查询出来,然后在内存中拼装成树状结构.现在主要涉及的是拼装方法的问题. 一般可以进行 递归调用来实现 过程如下:1.首先找到根节(s)点即没有上级节点的元素 2.根据找到的节点的id,遍历数据,查看parentid为此id的元素 将其 放到此元素的childlist中去3.对此元素的childlist 重复步骤2 2-3这个步骤的重复 一般通过递归来实现. 我采用的方法,是使用map作为辅

初学Python之利用map编写姓名格式化输出函数

利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.例如输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']. 代码: #定义一个list L = [] #设置名字的个数 n = int(raw_input("Please enter the number of the name:")) #利用循环将名字追加到list里面 for num in range(n):     names = raw

Ibatis动态拼装sql,常用标签总结及举栗子。

今天得到项目经理一项任务,就是拼装sql,第一次见到,不是太懂,赶紧回来睡一觉再说,由于这次的项目orm使用的是ibatis框架,所以需要使用动态拼装sql,或者是ognl语言,这门语言不是专属于ibatis的,而是一门独立的语言,就像EL表达式一样. 首先(摘抄一段,私密马赛,其实可以手写的)使用动态查询时ibatis的一个强大的功能,又是你已经改变WHERE子句条件的基础上你的参数对象的状态,在这种情况下的ibatis提供了一组可以映射语句中标签,这种标签的使用提高了SQL语句的重用性和灵活

spring参数拼装

-- 知道轮子是怎么造的 -- 自己试着造一造轮子 ,这样才可以更好地利用轮子,轮子的缺陷和优点才能明确. spring参数拼装,需要用到set函数,参考文档: http://coderec.cn/2016/08/27/%E4%B8%80%E6%AD%A5%E4%B8%80%E6%AD%A5%E8%87%AA%E5%AE%9A%E4%B9%89SpringMVC%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90%E5%99%A8/

JS下高效拼装字符串的几种方法比较与测试代码

在使用Ajax提交信息时,我可能常常需要拼装一些比较大的字符串通过XmlHttp来完成POST提交.尽管提交这样大的信息的做法看起来并不优雅,但有时我们可能不得不面对这样的需求.那么JavaScript中对字符串的累加速度如何呢?我们先来做下面的这个实验.累加一个长度为30000的字符串. 测试代码1 - 耗时: 14.325秒 复制代码代码如下: var str = ""; for (var i = 0; i < 50000; i++) { str += "xxxxx

拼装商品属性以及对应的可选参数数组数据

1 var arr = [{ 2 "id": 1, 3 "name": "内存", 4 "sid": 1, 5 "sname": "16G" 6 }, { 7 "id": 1, 8 "name": "内存", 9 "sid": 2, 10 "sname": "32G"