一、

    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数据(转)的更多相关文章

  1. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  2. Android网络之数据解析----使用Google Gson解析Json数据

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

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

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

  4. Android中使用Gson解析JSON数据

      Android中使用Gson解析JSON数据 在Android中可以使用Gson解析JSON数据 首先,从 code.google.com/p/google-gson/downloads/list ...

  5. JAVA使用Gson解析json数据,实例

    封装类Attribute: public class Attribute { private int id; private String name; private int age; public ...

  6. 通过Gson解析Json数据

    Json是一种数据格式,便于数据传输.存储.交换:Gson是一种组件库,可以把java对象数据转换成json数据格式. gson.jar的下载地址:http://search.maven.org/#s ...

  7. 我的Android进阶之旅------>解决Jackson、Gson解析Json数据时,Json数据中的Key为Java关键字时解析为null的问题

    1.问题描述 首先,需要解析的Json数据类似于下面的格式,但是包含了Java关键字abstract: { ret: 0, msg: "normal return.", news: ...

  8. android 初步了解应用Gson 解析Json数据

    1,因为没有服务器返回数据,对于Tomcat又懒得去配,所以我直接把数据写死到app中 先写一个实体类,便于操作 /** * 实体类 */ public class Person { int id ; ...

  9. 使用Gson解析JSON数据

    本文使用gson对json进行解析处理 首先,下载gson包 ,本文使用(gson-1.6.jar) package com.whroid.java.json; import com.google.g ...

随机推荐

  1. Mac iOS-----PhoneGap 添加条形扫描码插件

    此随笔记录的是通过plugman来安装phonegap插件. 第1步:安装plugman npm install -g plugman QiaodeMacBook-Pro:MyApp root# np ...

  2. [BZOJ 1874] [BeiJing2009 WinterCamp] 取石子游戏 【博弈论 | SG函数】

    题目链接:BZOJ - 1874 题目分析 这个是一种组合游戏,是许多单个SG游戏的和. 就是指,总的游戏由许多单个SG游戏组合而成,每个SG游戏(也就是每一堆石子)之间互不干扰,每次从所有的单个游戏 ...

  3. Ugly Windows

    poj3923:http://poj.org/problem?id=3923 题意:给出两个整数n.m表示屏幕的长宽.屏幕上有一些窗口,每个窗口都是矩形的,窗口的边框用同一个大写字母来表示,不同的窗口 ...

  4. codeforces Upgrading Array

    思路:对于每个数分解质因子然后记录每一个质因子的个数,对与在b中出现的质因子就减去1,否则加1,求出总的,然后从后面一次对它们的最大公约数,然后判断除以最大公约数之后,改变量是不是变化,求最大值,变化 ...

  5. cortex m0 lpc1114的NVIC中断如何使用

    LPC1114单片机的NVIC中断函数,有开中断.关中断.设置优先级.挂起等操作函数.这些函数位于core_cm0.h文件里面.比如开中断的函数如下: /** \brief Enable Extern ...

  6. BZOJ 1083 [SCOI2005]繁忙的都市

    1083: [SCOI2005]繁忙的都市 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1664  Solved: 1080[Submit][Sta ...

  7. 解决weblogic Managed Server启动非常慢的情况

    jdk版本:1.7.0_79 查看控制台日志停留在如下地方: . . JAVA Memory arguments: -Xms2048m -Xmx4096m -XX:MaxPermSize=512m . ...

  8. 贪心 uvaoj 11134 Fabled Rooks

    Problem F: Fabled Rooks We would like to place n rooks, 1 ≤ n ≤ 5000, on a n×n board subject to the ...

  9. 网络流(最大费用最大流) :POJ 3680 Intervals

    Intervals Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7218   Accepted: 3011 Descrip ...

  10. QTP关于AOM的Javascript启动方式

    序 QTP的AOM模型想必大家都很熟悉了,平时常用的就是通过VBS脚本的方式编写启动程序(也是我现在用的方法).其实,还有很多其他的方式,如Java,C#,JS,这些语言都是通过调用QTObjectM ...