Map的存储结构式Key/Value形式,Key 和 Value可以是普通类型,也可以是自己写的JavaBean(上一篇博客),还可以是带有泛型的List(本文).本例中您要重点看如何将Json转回 为带泛型的对象List,并且List中的泛型对象有多种实体.
实体类:
- import java.util.Date;
- public class Student {
- private int id;
- private String name;
- private Date birthDay;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public Date getBirthDay() {
- return birthDay;
- }
- public void setBirthDay(Date birthDay) {
- this.birthDay = birthDay;
- }
- @Override
- public String toString() {
- return "Student [birthDay=" + birthDay + ", id=" + id + ", name="
- + name + "]";
- }
- }
- public class Teacher {
- private int id;
- private String name;
- private String title;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- @Override
- public String toString() {
- return "Teacher [id=" + id + ", name=" + name + ", title=" + title
- + "]";
- }
- }
测试类:
- package com.tgb.lk.demo.gson.test4;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.LinkedHashMap;
- import java.util.List;
- import java.util.Map;
- import com.google.gson.Gson;
- import com.google.gson.reflect.TypeToken;
- public class GsonTest4 {
- public static void main(String[] args) {
- Student student1 = new Student();
- student1.setId(1);
- student1.setName("李坤");
- student1.setBirthDay(new Date());
- Student student2 = new Student();
- student2.setId(2);
- student2.setName("曹贵生");
- student2.setBirthDay(new Date());
- Student student3 = new Student();
- student3.setId(3);
- student3.setName("柳波");
- student3.setBirthDay(new Date());
- List<Student> stulist = new ArrayList<Student>();
- stulist.add(student1);
- stulist.add(student2);
- stulist.add(student3);
- Teacher teacher1 = new Teacher();
- teacher1.setId(1);
- teacher1.setName("米老师");
- teacher1.setTitle("教授");
- Teacher teacher2 = new Teacher();
- teacher2.setId(2);
- teacher2.setName("丁老师");
- teacher2.setTitle("讲师");
- List<Teacher> teacherList = new ArrayList<Teacher>();
- teacherList.add(teacher1);
- teacherList.add(teacher2);
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- map.put("students", stulist);
- map.put("teachers", teacherList);
- Gson gson = new Gson();
- String s = gson.toJson(map);
- System.out.println(s);
- System.out.println("----------------------------------");
- Map<String, Object> retMap = gson.fromJson(s,
- new TypeToken<Map<String, List<Object>>>() {
- }.getType());
- for (String key : retMap.keySet()) {
- System.out.println("key:" + key + " values:" + retMap.get(key));
- if (key.equals("students")) {
- List<Student> stuList = (List<Student>) retMap.get(key);
- System.out.println(stuList);
- } else if (key.equals("teachers")) {
- List<Teacher> tchrList = (List<Teacher>) retMap.get(key);
- System.out.println(tchrList);
- }
- }
- }
- }
输出结果:
- {"students": [{"id":1,"name":"李坤","birthDay":"Jun 22, 2012 9:48:19 PM"}, {"id":2,"name":"曹贵生","birthDay":"Jun 22, 2012 9:48:19 PM"}, {"id":3,"name":"柳波","birthDay":"Jun 22, 2012 9:48:19 PM"}],"teachers": [{"id":1,"name":"米老师","title":"教授"},{"id":2,"name":"丁老师","title":"讲 师"}]}
- ----------------------------------
- key:students values: [{id=1.0, name=李坤, birthDay=Jun 22, 2012 9:48:19 PM}, {id=2.0, name=曹贵 生, birthDay=Jun 22, 2012 9:48:19 PM}, {id=3.0, name=柳 波, birthDay=Jun 22, 2012 9:48:19 PM}]
- [{id=1.0, name= 李坤, birthDay=Jun 22, 2012 9:48:19 PM}, {id=2.0, name=曹贵 生, birthDay=Jun 22, 2012 9:48:19 PM}, {id=3.0, name=柳 波, birthDay=Jun 22, 2012 9:48:19 PM}]
- key:teachers values:[{id=1.0, name=米老师, title=教授}, {id=2.0, name=丁老师, title=讲师}]
- [{id=1.0, name=米老师, title=教授}, {id=2.0, name=丁老师, title=讲师}]
相关推荐
Json转换利器Gson之实例四-Map处理(下) (http://blog.csdn.net/lk_blog/article/details/7685224) Json转换利器Gson之实例五-实际开发中的特殊需求处理 (http://blog.csdn.net/lk_blog/article/details/7685237) ...
4. **复杂类型支持**:Gson不仅支持基本类型和简单类的转换,还能处理包括数组、集合、Map等复杂数据结构的转换。 5. **类型安全的转换**:Gson库提供了一种类型Token的概念,可以确保在反序列化时正确地将JSON数据...
这句话的含义是,通过创建一个Gson实例,然后调用其`toJson()`方法,可以将任何Java对象(`object`)转换为JSON格式的字符串(`json`)。这种转换过程对于数据交换、存储或在网络上传输非常有用。 Gson支持多种类型...
Retrofit支持Gson、Jackson等多种JSON解析库,可以直接将网络响应转换为Java对象。此外,Retrofit还允许自定义拦截器,可以添加请求头、处理认证等问题。 RxJava1.0.0是一个响应式编程库,它基于观察者模式,能够...
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
前端分析-2023071100789
基于kinect的3D人体建模C++完整代码.cpp
搞机工具箱10.1.0.7z
GRU+informer时间序列预测(Python完整源码和数据),python代码,pytorch架构,适合各种时间序列直接预测。 适合小白,注释清楚,都能看懂。功能如下: 代码基于数据集划分为训练集测试集。 1.多变量输入,单变量输出/可改多输出 2.多时间步预测,单时间步预测 3.评价指标:R方 RMSE MAE MAPE,对比图 4.数据从excel/csv文件中读取,直接替换即可。 5.结果保存到文本中,可以后续处理。 代码带数据,注释清晰,直接一键运行即可,适合新手小白。
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!
基于ANSYS LSDyna的DEM-SPH-FEM耦合模拟滑坡入水动态行为研究,基于ANSYS LSDyna的DEM-SPH-FEM耦合的滑坡入水模拟分析研究,基于ansys lsdyna的滑坡入水模拟dem-sph-fem耦合 ,基于ANSYS LSDyna; 滑坡入水模拟; DEM-SPH-FEM 耦合,基于DEM-SPH-FEM耦合的ANSYS LSDyna滑坡入水模拟
auto_gptq-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
复件 复件 建设工程可行性研究合同[示范文本].doc
13考试真题最近的t64.txt
好用我已经解决报错问题
# 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!
auto_gptq-0.4.2-cp38-cp38-win_amd64.whl
自动立体库设计方案.pptx
# 踏入C语言的奇妙编程世界 在编程的广阔宇宙中,C语言宛如一颗璀璨恒星,以其独特魅力与强大功能,始终占据着不可替代的地位。无论你是编程小白,还是有一定基础想进一步提升的开发者,C语言都值得深入探索。 C语言的高效性与可移植性令人瞩目。它能直接操控硬件,执行速度快,是系统软件、嵌入式开发的首选。同时,代码可在不同操作系统和硬件平台间轻松移植,极大节省开发成本。 学习C语言,能让你深入理解计算机底层原理,培养逻辑思维和问题解决能力。掌握C语言后,再学习其他编程语言也会事半功倍。 现在,让我们一起开启C语言学习之旅。这里有丰富教程、实用案例、详细代码解析,助你逐步掌握C语言核心知识和编程技巧。别再犹豫,加入我们,在C语言的海洋中尽情遨游,挖掘无限可能,为未来的编程之路打下坚实基础!
在日常的工作和学习中,你是否常常为处理复杂的数据、生成高质量的文本或者进行精准的图像识别而烦恼?DeepSeek 或许就是你一直在寻找的解决方案!它以其高效、智能的特点,在各个行业都展现出了巨大的应用价值。然而,想要充分发挥 DeepSeek 的优势,掌握从入门到精通的知识和技能至关重要。本文将从实际应用的角度出发,为你详细介绍 DeepSeek 的基本原理、操作方法以及高级技巧。通过系统的学习,你将能够轻松地运用 DeepSeek 解决实际问题,提升工作效率和质量,让自己在职场和学术领域脱颖而出。现在,就让我们一起开启这场实用又高效的学习之旅吧!