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 ... 
随机推荐
- 【题目】求n以内的素数个数
			最近在leetCode上刷提,还是满锻炼人的,为以后面试打基础吧.不多说下面开始. 问题:求[2,n]之间的素数的个数. 来源:leetCode OJ 提示: Let's start with a i ... 
- Java秒杀简单设计三:数据封装类
			上一篇https://www.cnblogs.com/taiguyiba/p/9828984.html 整合了数据库表和Dao层代码 这一篇继续设计数据封装类: 涉及到获取秒杀地址,查询,返回秒杀结果 ... 
- jfinal如何查看post还是get请求?
			jfinal如何查看post还是get请求? controller里面getRequest().getMethod()就行了. 值为 'GET' 或者 'POST' 
- 通过IFeatureClass 接口查询 IWorkspace, 查询通配符
			IWorkspace pWsI = ((IDataset)pFtCls).Workspace 查询通配符 ISQLSyntax psqls = (ISQLSyntax)(((IDataset)pFtC ... 
- easyui---easyloader.js
			1.easyloader.js 是根据用户指定,动态加载组件,可以替换下面jqueryeasyui <!-- <script type="text/javascript" ... 
- POJ-2356 Find a multiple(DFS,抽屉原理)
			Find a multiple Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 7133 Accepted: 3122 Speci ... 
- POJ 2912 - Rochambeau - [暴力枚举+带权并查集]
			题目链接:http://poj.org/problem?id=2912 Time Limit: 5000MS Memory Limit: 65536K Description N children a ... 
- HDU_6043_KazaQ's Socks
			KazaQ's Socks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ... 
- vue中  用媒体查询 空置根节点字体大小
			在index.html中 <style> @media all and (min-width: 0px) { html{font-size: 20px;}/* 12*4.6 */ } @m ... 
- Redis经验谈(转)
			原文:http://www.programmer.com.cn/14577/ 新浪作为全世界最大的Redis用户,在开发和运维方面有非常多的经验.本文作者来自新浪,希望能为业界提供一些亲身经历,让大家 ... 
