客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象

类型一:JavaBean

类型二:List<JavaBean>

类型三:List<String>

类型四:List<Map<String,Object>>

将上面的四种数据对象转换成json字符串的方法都是一样的

Gson gson = new Gson();

String jsonString = gson.toJson(obj);

工具/原料

  • gson.jar下载地址 code.google.com/p/google-gson/downloads/list

  • 网盘地址 :pan.baidu.com/s/1dDxe6uX

方法/步骤

  1.  

    将json字符串转化成JavaBean对象

    Person person = new Person("1","gson",1);

    Gson gson = new Gson();

    //这里将javabean转化成json字符串

    String jsonString = gson.toJson(person);

    System.out.println(jsonString);

    //这里将json字符串转化成javabean对象,

    person = gson.fromJson(jsonString,Person.class);

  2.  

    将json字符串转化成List<JavaBean>对象

    Person person1 = new Person("1","gson1",1);

    Person person2 = new Person("2","gson2",2);

    List<Person> persons = new ArrayList<Person>();

    persons.add(person1);

    persons.add(person2);

    Gson gson = new Gson();

    //这里将lsit<javabean>转化成json字符串

    String jsonString = gson.toJson(persons);

    //解析json字符串

    List<Person> persons2 = gson.fromJson(jsonString, new TypeToken<List<Person>>(){}.getType());

  3.  

    将json字符串转化成List<String>对象

    List<String> list = new ArrayList<String>();

    list.add("gson1");

    list.add("gson2");

    list.add("gson3");

    Gson gson = new Gson();

    String jsonString = gson.toJson(list);

    System.out.println("json字符串:"+jsonString);

    //解析json字符串

    List<String> list2 = gson.fromJson(jsonString, new TypeToken<List<String>>(){}.getType());

  4.  

    将json字符串转化成List<Map<String,Object>>对象

    Map<String,Object> map = new HashMap<String,Object>();

    map.put("key1", "value1");

    map.put("key2", "value2");

    Map<String,Object> map2 = new HashMap<String,Object>();

    map2.put("key1", 1);

    map2.put("key2", 2);

    List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();

    list.add(map);

    list.add(map2);

    Gson gson =  new Gson();

    String jsonString = gson.toJson(list);

    System.out.println("json字符串:"+jsonString);

    //解析json字符串

    List<Map<String,Object>> list2 = gson.fromJson(jsonString, new TypeToken<List<Map<String,Object>>>(){}.getType());

  5.  

    为了大家学习使用的方便,将测试java项目打包上传到了百度网盘,下载地址

    pan.baidu.com/s/1jG5HQpK

    END
 

json解析:[1]gson解析json的更多相关文章

  1. JSON格式之GSON解析

    JSON格式之GSON解析 最近在做websocket相关,项目需要JSON解析.相较之下感觉google的GSON解析不错. JAVA后台 Gson提供了fromJson()方法来实现从Json相关 ...

  2. Android解析Json数据之Gson解析

    Gson是谷歌官方提供的解析json数据的工具类.json数据的解析能够使用JSONObject和JSONArray配合使用解析数据,可是这样的原始的方法对于小数据的解析还是有作用的,可是陪到了复杂数 ...

  3. Json解析与Gson解析

    本文主要介绍json最原始的解析与google提供的gson工具类解析 ①json解析 /** * 普通的json解析 * @param s * @throws JSONException */ pr ...

  4. 安卓数据解析之 fastjson 的解析以及Gson解析

    在安卓开发过程中的.我们经常使用的数据传递是以json格式传递.安卓 亲爹提供了我们Gson解析工具.点击下载Gson.jar 阿里巴巴FastJson是一个Json处理工具包,包含"序列化 ...

  5. Java操作JSON数据(2)--Gson操作JSON数据

    Gson是Google公司发布的一个开发源码的Java库,可用于将Java对象转换为JSON字符串,也可用于将JSON字符串转换为对应的Java对象.本介绍下Gson的基本使用方法,包括序列化和反序列 ...

  6. 定位和xml解析和gson解析加上拉加载,下拉刷新

    这里的上拉加载,下拉刷新用到是依赖包 Mainactivity,xml解析和定位 package com.exmple.autolayout; import java.util.List; impor ...

  7. Google Gson解析Json数据应用实例

    转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gso ...

  8. FastJson和Gson和Json数据解析分析和用法

    首先分析下目前号称最快的FastJson,这个是所有人都验证过的,解析速度确实比较快,不过也需要根据数据量来看,数据量小的时候,Gson性能要稍微优于FastJson,但在数据量大解析的情况下,Fas ...

  9. JSON三种数据解析方法(转)

    原 JSON三种数据解析方法 2018年01月15日 13:05:01 zhoujiang2012 阅读数:7896    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  10. Android中的应用——谷歌官方Json分析工具Gson使用

    一个.Gson基本介绍 Gson(又称Google Gson)是Google公司公布的一个开放源码的Java库.主要用途为串行化Java对象为JSON字符串,或反串行化JSON字符串成Java对象. ...

随机推荐

  1. MySql数据类型和Java数据类型对应一览

    类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.String 12   CHAR N ...

  2. Python 安装MySQLdb模块遇到报错及解决方案:_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

    一.问题 系统:win7 64位 在下载MySQL-python-1.2.5.zip,使用python setup.py install 安装时,出现以下报错: _mysql.c(42) : fata ...

  3. UVA1218 Perfect Service

    Time Limit: 3000MS     64bit IO Format: %lld & %llu /*by SilverN*/ #include<iostream> #inc ...

  4. 倒计时 服务器时间 .NET js javascript

    原文发布时间为:2011-02-07 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  5. 回发或回调参数无效 “HtmlSelect”不能有类型为“LiteralControl”的子级

    原文发布时间为:2009-11-14 -- 来源于本人的百度文章 [由搬家工具导入] 回发或回调参数无效 “HtmlSelect”不能有类型为“LiteralControl”的子级 出现这两个错误,一 ...

  6. 移动GIS技术在城市信息采集中的应用

    1 引言 随着移动平板电脑和手机(以下简称移动终端)在软硬件上的更新换代,和3G.4G通讯网络的升级,传统测绘和和数据服务方式正在发生巨大变化.以城市中的外业踏勘和信息采集为例,移动终端正成为主要的外 ...

  7. NGINX配置获取CloudFlare 下的访客真实IP并记录到日志

    我用的是lnmp.org的环境 /usr/local/nginx/conf/nginx.conf 在 http { } 部分增加 map $HTTP_CF_CONNECTING_IP $clientR ...

  8. AC日记——集合位置 洛谷 P1491

    集合位置 思路: 次短路: 先走一遍最短路: 记录最短路径,然后依次删边走最短路: 最短的长度就是次短路: 来,上代码: #include <queue> #include <cma ...

  9. VS2017使用

    1. 用了一段时间的layui,发现官网的升级的功能很好用,于是把自己本地项目的layui升级到的高版本.按照官网上的代码几乎一模一样,但是功能就是出不来,之后发现本地虽然是高版本但是生成的脚本依然是 ...

  10. codevs——1010 过河卒(棋盘DP)

    2002年NOIP全国联赛普及组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 如图,A 点有 ...