使用GSON 解析JSON 数据
1、GSON 的介绍:
GSON 是一个JAVA 库,可用于将JAVA 对象转换称JSON,它也可以被用于将一个JSON 字符串转换为等效的Java对象。
GSON 可以与任意Java对象,包括预先存在的对象或者你没有源代码结合。
背景:已经有很多开源项目,可以转换Java对象到JSON。然而,他们中大多数要求在你的类上使用元注释 Annotation,如果你没有源码,将不能给代码加上Java这些元注解。大多数人也并不完全支持Java泛型的使用。GSON 认为这些是非常重要的设计目标;
2、用法准备:
下载GsonAPI:google-gson-1.7.1-release.zip ; 并投入使用,怎么用大家都明白
3、解析JSON数据的两种方法:
(1): 通过获取JsonReader对象解析JSON数据;
(2): 通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作;
4、案例:
package com.example.file;
import java.io.StringReader;
import java.net.Proxy.Type;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.stream.JsonReader;
/**
* GSON 解析 json 数据
* @author Administrator
*
*/
public class MyGson {
/**
* 使用JsonReader对象解析 JSON 数据
* @throws Exception
*/
public void jsonReader() throws Exception{
String json = "[{\"name\":\"aa\",\"age\":20,\"score\":90},{\"name\":\"ff\",\"age\":21,\"score\":80}]";
// 1、创建JsonReader
JsonReader reader = new JsonReader(new StringReader(json));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
String str = reader.nextName();
if(str.equals("name")){
String name = reader.nextString();
Log.i("msg", "name:"+name);
}
if(str.equals("age")){
int age = reader.nextInt();
Log.i("msg", "age:"+age);
}
if(str.equals("score")){
int score = reader.nextInt();
Log.i("msg", "score:"+score);
}
}
reader.endObject();
}
reader.endArray();
}
/**
* 测试:
* 把对象映射成JSON数据格式
* java to json
*/
public void tojson(){
Student s1 = new Student("小黑",13, 90);
Student s2 = new Student("小白",14, 70);
Student s3 = new Student("小黄",15, 80);
Student s4 = new Student("小绿",16, 100);
List<Student> list = new ArrayList<Student>();
list.add(s1);
list.add(s2);
list.add(s3);
list.add(s4);
Gson gson = new Gson();
String s = gson.toJson(list);
Log.i("msg", "对象映射称json格式为:"+s);
}
/**
* 测试:
* 通过把JSON 数据映成一个对象,使用GSON对象的fromJson()方法获取一个对象数组进行操作;
*
* json to java
*
* 如果要处理的JSON字符串只包含一个JSON 对象,则可以直接使用fromJson获取一个对象
*/
public void fromjson(){
Gson gson = new Gson();
// 单个对象的操作
String strjson = "{"+"\"name\":\"aa\",\"score\":90,\"age\":12"+"}";
Student stu = gson.fromJson(strjson, Student.class); // 映射获取数据
Log.i("msg", "姓名:"+stu.getName()+",年龄:"+stu.getAge());
/* 多个对象的操作 */
String json = "[{\"name\":\"aa\",\"age\":20,\"score\":90}," +
"{\"name\":\"ff\",\"age\":21,\"score\":80}]";
java.lang.reflect.Type listType = new TypeToken<LinkedList<Student>>(){}.getType();
Gson gson1 = new Gson();
LinkedList<Student> stus = gson1.fromJson(json, listType);
for(Iterator iterator=stus.iterator();iterator.hasNext();){
Student st = (Student) iterator.next();
Log.i("msg",st.getName());
}
}
}
使用GSON 解析 json数据必须用到一个jar包,下载jar包和源码地址:
分享到:
相关推荐
Android Studio下使用Google Gson解析Json数据示例
我的博客中的关于android中gson解析json数据例程,遇到不懂的可以来我的博客中交流。(๑•̀ㅂ•́)و✧
这里进行介绍Gson解析复杂Json和简单Json的数据方式
1、生成Json数据 2、使用Gson解析Json数据(单个json对象、json数组和json对象内嵌json数组) // 这里有两篇好心人的博文,有详细的讲解 http://www.jb51.net/article/32547.htm ...
Eclipse下使用Google Gson解析Json数据示例,挺好用的,亲测
通过Gson解析Json文件,相关博文:http://www.cnblogs.com/tianzhijiexian/p/4246497.html
JSON、GSON解析json数据,详细介绍了json和gson的使用,解析复杂json数据
Gson解析Json数据信息,生成Json格式的数据
解放你的双手,不用再去一个一个JSONObject去处理解析问题,两行代码搞定一切
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下
用google的gson 解析json数据 里面有解析数组的方式 可根据自己的json样式自己定制 使用新手 分享一下
Gson解析网络数据显示到listview上,加入万能适配器,适配器就10行,大家可以复制包用,在log日记查看完整的Json数据,listview上我显示了title给大家看效果,适配器只要10行左右,简单易懂。
该源码是用Gson解析一个复杂的json,将json中的数据加载到listview中并且根据json中的url地址加载网络图片到listview中。
Eclipse下使用Google Gson解析Json数据示例
android之json和gson数据解析最完整的代码例子(包括各种样式的json数据) 本人在2.3.3模拟器上已亲测可以运行。最适合学习json 或gson数据解析的初学者。
这个是一个通过Gson解析Json的简单实现,以及通过实体类生成Json字符串,里面包含Gson解析包,
Android通过gson自动解析服务器返回的json数据
android Zip压缩 删除文件 Gson解析Json
retrofit网络封装库,内部使用gson解析json
采用Gson解析json数据。博文链接: http://www.cnblogs.com/smyhvae/p/4063452.html