JSON初体验(二):Gson解析
今天,我们来介绍一下Gson的jar包的用法.
JSON解析之Gson
特点:编码简介,谷歌官方推荐
数据之间的转换:
1.将json格式的字符串{}转换成为java对象
API:
<T> T fromJson(String json,Class<T> classOfT);
注意:要求json对象中的key的名称与java对象对应的类中的属性名要相同
步骤:
1.将Gson的jar包导入到项目中
2.创建Gson对象:
Gson gson = new Gson();
3.通过创建的Gson对象调用fromJson()方法,返回该JSON数据对应的java对象:
ShopInfo shopInfo = gson.fromJson(json,ShopInfo.class);
代码:
a.gson中所对应的类:
public class ShopInfo {
private int id;
private String name;
private double price;
private String imagePath; public ShopInfo() {
} public ShopInfo(int id, String name, double price, String imagePath) {
this.id = id;
this.name = name;
this.price = price;
this.imagePath = imagePath;
} 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 double getPrice() {
return price;
} public void setPrice(double price) {
this.price = price;
} public String getImagePath() {
return imagePath;
} public void setImagePath(String imagePath) {
this.imagePath = imagePath;
} @Override
public String toString() {
return "ShopInfo{" +
"id=" + id +
", name='" + name + '\'' +
", price=" + price +
", imagePath='" + imagePath + '\'' +
'}';
}
}
b.解析json方法:
public class One {
public static void main(String[] args) {
String json = "{\n" +
"\"id\":2,\n" +
"\"name\":\"大虾\",\n" +
"\"price\":23.3,\n" +
"\"imagePath\":\"http://www.baidu.com\"\n" +
"}";
Gson gson = new Gson();
ShopInfo shopInfo = gson.fromJson(json, ShopInfo.class);
System.out.println(shopInfo.toString());
}
}
2.将json格式的字符串[]转化为java对象的List
API:
fromJson(String json,Type typeOfT);
步骤:
1.将Gson的jar包导入到项目中
2.创建Gson对象:Gson gson = new Gson();
3.通过创建的Gson对象调用fromJson()方法,返回该JSON数据对应的java集合:
List<ShopInfo> shops = gson.fromJson(json,new TypeToken<List<ShopInfo>>(){}.getType());
代码:
public class Two {
public static void main(String[] args) {
String json = "[\n" +
" {\n" +
" \"id\":1,\n" +
" \"imagePath\":\"http://www.baidu.com\",\n" +
" \"name\":\"大虾1\",\n" +
" \"price\":12.3\n" +
" },\n" +
" {\n" +
" \"id\":2,\n" +
" \"imagePath\":\"http://www.douban.com\",\n" +
" \"name\":\"大虾2\",\n" +
" \"price\":12.5\n" +
" }\n" +
"]";
Gson gson = new Gson();
List<ShopInfo> shops = gson.fromJson(json, new TypeToken<List<ShopInfo>>() {
}.getType());
for (int i = 0; i <shops.size() ; i++) {
System.out.println(shops.toString());
}
}
}
3.将java对象转换为json字符串{}
API:
String toJson(Object src);
步骤:
1.将Gson的jar包导入到项目中
2.创建Gson对象:
Gson gson = new Gson();
3.通过创建的Gson对象调用toJson()方法,返回json数据;
ShopInfo shop = new ShopInfo(1,"鲍鱼",250.0,"");
String json = gson.toJson(shop);
代码:
public class Three {
public static void main(String[] args) {
Gson gson = new Gson();
ShopInfo shopInfo = new ShopInfo(1, "鲍鱼", 250.0, "");
String json = gson.toJson(shopInfo);
System.out.println(json);
}
}
4.将java对象的List转换为json字符串[]
API:
String toJson(Object src);
步骤:
1.将Gson的jar包导入到项目中
2.创建Gson对象:
Gson gson = new Gson();
3.通过创建的Gson对象调用toJson()方法,返回json数据:
List<ShopInfo> shops = new ArrayList<>();
String json = gson.toJson(shops);
public class Four {
public static void main(String[] args) {
ArrayList<ShopInfo> shopInfos = new ArrayList<ShopInfo>();
ShopInfo shopInfo1 = new ShopInfo(1, "鲍鱼1", 250.0, "");
ShopInfo shopInfo2 = new ShopInfo(2, "鲍鱼2", 250.2, "");
shopInfos.add(shopInfo1);
shopInfos.add(shopInfo2);
Gson gson = new Gson();
String json = gson.toJson(shopInfos);
System.out.println(json);
}
}
最后在贴一下gson的maven的依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.7</version>
</dependency>
JSON初体验(二):Gson解析的更多相关文章
- JSON初体验(三):FastJson解析
JSON解析之FastJson(阿里巴巴解析开源) 特点: Fastjson是一个Java语言编写的高性能功能完善的JSON库,它采用的 是一种"假定有序快速匹配"的算法,把JSO ...
- JSON初体验(一):JsonObject解析
在学校的呆了一段时间,马上又要回去工作了,不说了,我现在介绍一下json相关的内容 1.JSON数据格式(总的来说,json就是一个字符串) 1.整体结构 String json1 = "{ ...
- SpringBoot初体验及原理解析
一.前言 上篇文章,我们聊到了SpringBoot得以实现的幕后推手,这次我们来用SpringBoot开始HelloWorld之旅.SpringBoot是Spring框架对“约定大于配置(Conv ...
- Ruby on rails初体验(二)
体验一中添加了一个最基本的支架和一个简单的数据迁移,实现了一个基本的增删改查的功能列表.体验二中要在次功能上继续丰满一下功能.实现如下效果: 在每个公司中都包含有不同的部门,按照体验一中的方法,添加一 ...
- 【原创】Jquery初体验二
快速导航 一.传统方式生成Table 二.使用jquery.tmpl插件快速生成Table 三.Jquery中的操作class的几个方法 四:jq里面的克隆 五:属性过滤器 六:表单元素过滤器 一.传 ...
- Spring Cloud Alibaba 初体验(二) Nacos 服务注册与发现 + 集成 Spring Cloud Gateway
一.服务注册 添加依赖: <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>s ...
- node初体验(二)
1.静态资源访问,需要设置路由和响应标头 2.url模块.path模块.querystring模块 Url { protocol: null, slashes: null, auth: null, h ...
- jquery.fn.extend与jquery.extend--(初体验二)
1.jquery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jquery.fn.extend(object);给jQuery对象添加方法. $.extend({ a ...
- Google Gson解析Json数据应用实例
转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gso ...
随机推荐
- C++ cin不支持录入空格
如果在C++中,用cin>>str;这种方法来接收字符串那么录入的str不能包含空格,否则它会按照空格将整个字符串切分成若干段.如果你要是想输入带空格的字符串那就要用到getline()这 ...
- SAP成都研究院许聚龙:Hello, Coresystems!
Jerry的前一篇文章<SAP成都研究院数字创新空间沟通S/4HANA和C/4HANA的智能服务演示视频和Coresystems分享预告>已经提到,接下来会由SAP成都研究院数字创新空间的 ...
- Jmeter入门12 __time函数 jmeter获取当前系统时间
有的接口要传递当前的日期或时间,可以用__time()函数获取当前时间 ${__time()} 当前时间到计算机元年的毫秒数 ${__time(时间格式)} 以预定的格式显示当前时间 请求示例: ...
- Android(java)学习笔记40:WindowManager 中LayoutParams的各种属性
1. WindowManager 中LayoutParams的各种属性 WindowManager.LayoutParams 是 WindowManager 接口的嵌套类(内部类):它继承于 View ...
- oc 无中生有添加协议(使已有函数符合协议)
class_addProtocol([UIButton class],@protocol(UIButtonExport)); @protocol UIButtonExport <JSExport ...
- Mysql之inner join,left join,right join详解
首先借用官方的解释下: inner join(等值连接):只返回两个表中联结字段相等的行: left join(左联接):返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右 ...
- webapi2返回 已拒绝为此请求授权。
开始用的webapi2中是没有问题的,后来再项目中加了个过滤器并继承了AuthorizeAttribute 然后在全球文件中注册你的过滤器,让每次执行的时候都会进来 我项目中只重写了OnAuthori ...
- java使用JSCH连接FTP(Linux服务器)上传文件到Linux服务器
首先需要用到jsch-0.1.54.jar 包: 链接: https://pan.baidu.com/s/1kZR6MqwpCYht9Pp_D6NKQw 密码: gywx 直接上代码: package ...
- JavaScript 表单处理
表单对象的属性 name action method encoding target elements 表单对象的方法 submit reset 表单元素事件 文本域事件:onFocus(获得焦点) ...
- JavaScript 基础(二)数组
字符串, JavaScript 字符串就是用'' 和""括起来的字符表示. 字符字面量, \n 换行, \t 制表, \b 退格, \r 回车, \f 进纸, \\ 斜杠,\' 单 ...