Gson(Google)基础
一、所需jar包:
gson-x.x.jar(本例使用的是gson-2.7.jar)。
二、解析转化:
1、json字符串 < ------ > json
String str="{\"name\" : \"peter\",\"age\" : 25,\"address\" : \"广州\",\"weight\" : \"55.5\",\"handsome\" : true}";
Gson gson=new Gson(); //json字符串 ------> json
JsonObject jsonObject=new JsonParser().parse(str).getAsJsonObject(); //json ------> json字符串
String json=jsonObject.toString();
2、java实体类 < ------ > json
public class User {
private String name;
private int age;
private String address;
private double weight;
private boolean handsome;
//此处省略构造方法和get/set方法
User user=new User("peter", 20, "广州", 55.5, true); /*
* java实体类 ------> json
*/
//java实体类 ------> json字符串
String jsonStr=new Gson().toJson(user);
//json字符串 ------> json
JsonObject jsonObject=new JsonParser().parse(jsonStr).getAsJsonObject(); //json ------> java实体类
User user2=new Gson().fromJson(jsonObject, User.class);
3、List < ------ > json
List<String> list=new ArrayList<String>();
list.add("QQQQQQ");
list.add("WWWWWW");
list.add("EEEEEE");
list.add("RRRRRR"); Gson gson=new Gson();
//List------>json字符串------>jsonAray
String arrStr=gson.toJson(list);
JsonArray jsonArray=new JsonParser().parse(arrStr).getAsJsonArray(); //jsonAray------>List
List<String> list2=gson.fromJson(jsonArray, List.class);
4、Map < ------ > json
Map<String, String> map=new HashMap<String, String>();
map.put("name", "peter");
map.put("sex", "Man");
map.put("age", "20"); Gson gson=new Gson();
//Map------>json字符串------>json
String gsonStr=gson.toJson(map);
JsonObject jsonObject=new JsonParser().parse(gsonStr).getAsJsonObject(); //json------->Map
Map<String, String> map2=gson.fromJson(jsonObject, Map.class);
5、Set < ------ > json
Set<String> set=new HashSet<String>();
set.add("QQQQQQ");
set.add("wwwwww");
set.add("eeeeee"); Gson gson=new Gson(); //Set------>json字符串------>json
String gsonStr=gson.toJson(set);
JsonArray jsonArray=new JsonParser().parse(gsonStr).getAsJsonArray(); //json----->Set
Set<String> set2=gson.fromJson(jsonArray, Set.class);
心得:Gson(Google)是将json字符串作为“桥梁”进行转化的。
三、CRUD:
1、查询数据:
//"peter"
String name1=jsonObject.get("name").toString();
//peter
String name2=jsonObject.get("name").getAsString();
int age=jsonObject.get("age").getAsInt();
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println(jsonArray.get(i));
}
2、增加数据
jsonObject.addProperty("height", 170);
jsonArray.add("RRRRRR");
3、删除数据:
jsonObject.remove("height");
//index从0开始
jsonArray.remove(index);
4、修改数据:
//重置数据即可
jsonObject.addProperty("height", 180);
for (int i = 0; i < jsonArray.size(); i++) {
if("EEEEEE".equals(jsonArray.get(i).getAsString())){
jsonArray.remove(i);
jsonArray.add("eeeeee");
}
}
Gson(Google)基础的更多相关文章
- Json,Gson,Ajax基础知识
//json 是一种轻量级的文本格式,解析简单,他也是一键值来存,数据与数据的分割是以,来分割 //{} 看到大括号就是一个对象,[]代表集合 ,基本上所有数据的交互都是以json格式来进行传递的 / ...
- Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例
Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的 ...
- Gson和Fastjson的使用
转载自:JSON技术的调研报告 一.Google的Gson包的使用简单介绍. Gson类:解析json的最基础的工具类 JsonParser类:解析器来解析JSON到JsonElements的解析树 ...
- Gson?So easy.
1.概述 这篇文章主要讲述了Gson的使用.包括从最基础的基本类型的序列化,到对象,数组,集合,再到Gson注解,Gson Builder,再到格式化,自定义序列化与反序列化等内容. 另外文章篇幅较长 ...
- 转:Google论文之一----Bigtable学习翻译
文章来自于:http://www.cnblogs.com/geekma/archive/2013/05/30/3108391.html Bigtable研究 摘要 Bigtable是一个用于管理结构型 ...
- 谷歌三大核心技术(三)Google BigTable中文版
谷歌三大核心技术(三)Google BigTable中文版 Bigtable:一个分布式的结构化数据存储系统 译者:alex 摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海 ...
- 你真的会用Gson吗?Gson使用指南(2)
注:此系列基于Gson 2.4. 上一篇文章 你真的会用Gson吗?Gson使用指南(1) 我们了解了Gson的基础用法,这次我们继续深入了解Gson的使用方法. 本次的主要内容: Gson的流式反序 ...
- 【转】谷歌三大核心技术(三)Google BigTable中文版
谷歌三大核心技术(三)Google BigTable中文版 摘要 Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据.Goo ...
- 几款Java常用基础工具库
通用工具类(字符串.时间格式化.BeanUtils.IO) 1. commons-lang3库 1.1. org.apache.commons.lang3.StringUtils类 日常代码中,我们经 ...
- Google论文BigTable拜读
这周少打点dota2,争取把这篇论文读懂并呈现出来,和大家一起分享. 先把论文搞懂,然后再看下和论文搭界的知识,比如hbase,Chubby和Paxos算法. Bigtable: A Distribu ...
随机推荐
- 危险的浮点数float
今天写程序又以为我见鬼了!最后查出来发现原来又是浮点数搞的鬼! 情况大致是这样的,我想要测试向量运算的速度,所以要对一个浮点数向量进行求和运算,代码如下: int vect_size=10000000 ...
- Twig---和vue或angular前端框架并存
<h1> {% verbatim %} {{message}} {% endverbatim %} </h1> 上面这种方式虽然能够解决,前台渲染的问题,但是还是会报错: 第二 ...
- 前端基础进阶之Promise
前言 Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我 ...
- 2017年TOP100summit开幕在即, 15位大咖担任联席主席甄选最值得学习的100个研发案例
从万维网到物联网,从信息传播到人工智能,20年间软件研发行业趋势发生了翻天覆地的变化.大数据.云计算.AI等新兴领域逐渐改变我们的生活方式,Devops.容器.深度学习.敏捷等技术方式和工作理念对软件 ...
- HDFS文件系统的JAVA-API操作(一)
使用java.net.URL访问HDFS文件系统 HDFS的API使用说明: 1.如果要访问HDFS,HDFS客户端必须有一份HDFS的配置文件 也就是hdfs-site.xml,从而读取Nameno ...
- python requests模块的两个方法content和text
requests模块下有两个获取内容的方法,很奇怪,都是获取请求后内容的方法,有什么区别呢?? 一.区别 content:返回bytes类型的数据也就是二进制数据 text:返回的就是纯文本(Unic ...
- JavaScript如何实现拖放功能
1.在学习ExtJs时,对其拖放功能感到很陌生,然后找了个拖放功能实现. 转载地址 2.拖拽的基本原理就是根据鼠标的移动来移动被拖拽的元素.鼠标的移动也就是x.y坐标的变化:元素的移动就是style. ...
- 带分数dfs+剪枝优化
#include<iostream>#include<cstdio>#include<cstdlib>#include<ctime>using name ...
- vue之vue-cookies
vue之vue-cookies npm链接:https://www.npmjs.com/package/vue-cookies 安装: npm install vue-cookies --save 使 ...
- HTTP API响应数据规范整理
概述 本文档为本人对长期开发API接口所整理的经验总结,如有不完善或不合理的地方,望各位多提意见. 文档目的为规范服务器端API接口,便于服务器端与客户端代码重用.服务器端和客户端可根据实际所定义规范 ...