zoukankan      html  css  js  c++  java
  • 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());

        }

  • 相关阅读:
    1048 石子归并
    高精度算法小结
    3117 高精度练习之乘法
    UVa 11809
    3115 高精度练习之减法
    3116 高精度练习之加法
    “da shen” in my heart
    爱是怀疑!
    普通disco
    崇拜
  • 原文地址:https://www.cnblogs.com/dongweiq/p/3775001.html
Copyright © 2011-2022 走看看