Gson解析json数据(转)
一、
www.json.org这是JSON的官方网站。
首先,我,我们需要在code.google.com/p/google-gson/downloads/list下载JSON的jar包,解析后把gson-1.6.jar文件导入到你那个需要解析的项目中去。
解析JSON例子,如下:
1、 这是Json数据,"[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"
2、
//创建JsonReader 对象
JsonReader reader = new JsonReader(new StringReader(jsonData));
//开始解析数组
reader.beginArray();
//循环判断有没有下一个Json对象
while(reader.hasNext()){
//开始解析Json对象
reader.beginObject();
}
//循环判断Json对象里面有没有下一个键值对
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equal("name")){
//name键多对应的值
reader.nextString();
}else if(tagName.equal("age")){
//age键多对应的值
reader.nextString();
}
}
//Json对象的结尾
reader.endObject();
}
//数组解析的结尾
reader.endArray();
二、
***这个例子只能是针对于Json对象而不是Json数组,Json数组需要转为为Json对象,这是下一节的事情。
1. 先有一个JSON对象String str = "{\"name\":\"Michael\",\"age\":20}",JSON类可以直接把JSON数据转化为java对象
2. 创建User类
public class User{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
3. 创建Gson对象
Gson gson = new Gson();
//第二个是指示转为哪个类的对象
User user = gson.fromJson(str , User.class);
Sysout.out.println(user.getName);
Sysout.out.println(user.getAge);
三、
1. 这是Json数据,String str = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"。这个Json数据有一个数组,数组里面有两个Json对象
2. 首先必须生成Type对象,使用以下的方式(User是上一节的User类):
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
3. 生成Gson对象
Gson gson = new Gson();
4. LinkedList<User> users = gson.fromJson(str , listType);
5. 循环迭代LinkedList
for(Iterator iterator = users.iterator ; iterator.hasNext() ; ){
User user = (User)iterator.next();
System.out.println(user.getName());
System.out.println(user.getAge());
}
Gson解析json数据(转)的更多相关文章
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- Android网络之数据解析----使用Google Gson解析Json数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Google Gson解析Json数据应用实例
转自:http://lixigao449778967.blog.163.com/blog/static/24985164201269105928783/ 1.需要的Jar包 1) Google Gso ...
- Android中使用Gson解析JSON数据
Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...
- JAVA使用Gson解析json数据,实例
封装类Attribute: public class Attribute { private int id; private String name; private int age; public ...
- 通过Gson解析Json数据
Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...
- 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题
1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...
- android 初步了解应用Gson 解析Json数据
1,因为没有服务器返回数据,对于Tomcat又懒得去配,所以我直接把数据写死到app中 先写一个实体类,便于操作 /** * 实体类 */ public class Person { int id ; ...
- 使用Gson解析JSON数据
本文使用gson对json进行解析处理 首先,下载gson包 ,本文使用(gson-1.6.jar) package com.whroid.java.json; import com.google.g ...
随机推荐
- PM加油站
老郭讲述深航CSM 1.需求有遗漏,人员水平不足:加班导致人员流失:但是这样,客户后来还是好评,并且项目被评为深航的标杆项目:老郭也是被指定为未来项目的项目经理:--!我想起了古时候的一句话:功夫在诗 ...
- IOS网络编程:HTTP
IOS网络编程:HTTP HTTP定义了一种在服务器和客户端之间传递数据的途径. URL定义了一种唯一标示资源在网络中位置的途径. REQUESTS 和 RESPONSES: 客户端先建立一个TCP连 ...
- 面向对象涉及SOLID原则
S = Single Responsibility Principle 单一职责原则 O = Opened Closed Principle 开放闭合原则 L = Liscov Substituti ...
- Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条
Unity3D研究院之异步加载游戏场景与异步加载游戏资源进度条 异步任务相信大家应该不会陌生,那么本章内容MOMO将带领大家学习Unity中的一些异步任务.在同步加载游戏场景的时候通常会使用方法 Ap ...
- varnish、squid、apache、nginx缓存的对比<转>
1.Squid,很古老的反向代理软件,拥有传统代理.身份验证.流量管理等高级功能,但是配置太复杂.它算是目前互联网应用得最多的反向缓存代理服务器,工作于各大古老的cdn上. 2.Varnish是新兴的 ...
- WordPress BuddyPress Extended Friendship Request插件跨站脚本漏洞
漏洞名称: WordPress BuddyPress Extended Friendship Request插件跨站脚本漏洞 CNNVD编号: CNNVD-201307-609 发布时间: 2013- ...
- BZOJ1726: [Usaco2006 Nov]Roadblocks第二短路
1726: [Usaco2006 Nov]Roadblocks第二短路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 768 Solved: 369[S ...
- vim下缩进及高亮设置
1.配置文件的位置 在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效.而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” ...
- 高效算法——A 归并排序
In this problem, you have to analyze a particular sorting algorithm. The algorithm processes a seque ...
- sublime text3安装SublimeREPL--解决不能运行input()的问题
原文地址:http://blog.chinaunix.net/uid-12014716-id-4269991.html 一.安装包管理器(如果已经安装可以忽略) 1.简单的安装方法:使用Ctrl+`快 ...