文档章节

谷歌GSON可以把Java对象转换成JSON,也可以把JSON换成一个相等的Java对象

f
 flyqilong
发布于 2016/01/10 21:17
字数 591
阅读 23
收藏 0
解析工具类:
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.domain.Student;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class GsonParserUtils {
// 谷歌Gson,生成JSON字符串和解析JSON工具类
// Gson将获取的对象生成JSON字符串
public static String toJsonString(Object obj) {
Gson gson = new Gson();
// Object是你自己定义的实体对象类
String str = gson.toJson(obj);
return str;
}
/*
 * //GSON使用泛型将JSON字符串转换回实体类对象(javabean) //JSON中只有一个对象的采用这种解析
 */public static <T> T getStudent(String jsonString, Class<T> clazz) {
Gson gson = new Gson();
T t = null;
t = gson.fromJson(jsonString, clazz);
return t;
}
// JSON有多个对象时采用这种解析(注意:不包括map类的)
public static <T> List<T> getStudents(String jsonString,Class<T> clazz) {
Gson gson = new Gson();
List<T> list = new ArrayList<T>();
Type type = new TypeToken<List<T>>(){}.getType();
list = gson.fromJson(jsonString,type );
return list;
}
// JSON是字符串数组时用这种解析,注意这里是不用传入对象
public static <T> List<T> getListString(String jsonString) {
Gson gson = new Gson();
List<T> list = new ArrayList<T>();
list = gson.fromJson(jsonString, new TypeToken<List<T>>() {
}.getType());
return list;
}
// JSON如果是Map对象采用这种解析
public static List<Map<String, Object>> getListMap(String jsonStirng) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Gson gson = new Gson();
list = gson.fromJson(jsonStirng,
new TypeToken<List<Map<String, Object>>>() {
}.getType());
return list;
}
}
实体类Service类:生成对象
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//此类用来创建Student对象的工具类,用来进行谷歌GSON解析的工具类
public class StudentService {
// 生成一个Student对象
public static Student createStudent() {
Student student = new Student(111, 22, "张三");
return student;
}
// 生成多个Student对象
public static List<Student> createLsitStudent() {
Student student = new Student(111, 22, "张三");
Student student2 = new Student(112, 20, "李四");
List<Student> list = new ArrayList<Student>();
list.add(student);
list.add(student2);
return list;
}
// 生成字符串数组对象
public static List<String> createListString() {
List<String> list = new ArrayList<String>();
list.add("嘿嘿嘿");
list.add("playboy");
return list;
}
// 生成Map-Student对象
public static List<Map<String, Object>> createListMap() {
// List<Map<Integer, Object>>list=new ArrayList<Map<Integer, Object>>();
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", 111);
map.put("age", 22);
map.put("name", "张三");
/*Student stu=new Student(111,22,"张三");
map.put("1",stu);*/
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("id", 112);
map2.put("age", 20);
map2.put("name", "李四");
list.add(map);
list.add(map2);
return list;
/*Student stu2=new Student(112,20,"李四");
map.put("2",stu2);
return list;*/
}
}

© 著作权归作者所有

f
粉丝 3
博文 93
码字总数 53900
作品 0
Android工程师
私信 提问
有效选择七个关于 Java 的 JSON 开源类库

有效选择七个关于Java的JSON开源类库 April 4, 2014 By Constantin Marian Alin 翻译:无若 (英语原文:http://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-......

溪边九节
2014/04/19
12.5K
14
有效选择七个关于Java的JSON开源类库

April 4, 2014 By Constantin Marian Alin 翻译:无若 (英语原文:http://www.developer.com/lang/jscript/top-7-open-source-json-binding-providers-available-today.html) 简介 JSON是J......

无若
2014/04/19
0
1
SpringMVC整合fastjson解析json出错

先贴出json: 贴出Java类,以上的json是有以下的Java类对象序列化而成的 服务器端抛出异常: 我想问题应该出在那个Map成员属性上,这段json格式是合法的,客户端使用gson对Java对象进行序列化...

Benjaman
2016/03/28
920
7
Gson通过反射将Json转化为java对象

Gson是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。 然后我们先写一个demo来用Gson将一个json转化...

woshixin
04/20
0
0
JSON-lib框架,转换JSON、XML

Json-lib可以将Java对象转成json格式的字符串,也可以将Java对象转换成xml格式的文档,同样可以将json字符串转换成Java对象或是将xml字符串转换成Java对象。 一、 准备工作 1、 首先要去官方...

五大三粗
2015/11/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android双向绑定原理简述

Android双向绑定原理简述 双向绑定涉及两个部分,即将业务状态的变化传递给UI,以及将用户输入信息传递给业务模型。 首先我们来看业务状态是如何传递给UI的。开启dataBinding后,编译器为布局...

tommwq
今天
4
0
Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
今天
8
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
4
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部