zoukankan      html  css  js  c++  java
  • 浅谈JSONObject,GSON解析JSON

    这次大致梳理一下关于JSON的其中两种解析方法:JSONObject和GSON

    例:

     待解析的Class.json文件

    [ { "id" : "1" , "name" : "Qbin" , "sex" : "male" },

      { "id" : "2" , "name" : "Qmm" , "sex" : "female" },

      { "id" : "3" , "name" : "cmy" , "sex" : "male" }]

    JSONObject解析:

    public class Main{
    
      .....
    
      parseJSONWithJSONObject(jsondata);
    
      .....
    
     
    
      private void parseJSONWithJSONObject(String jsonData){
    
        try{
    
          JSONArray jsonArray = new JSONArray(jsondata);
    
          //由于jsondata文件中定义了json数组
    
          for(int i = 0; i <jsonArray.length(); i++){
    
            JSONObject jsonObject = jsonArray.getJSONObject(i);
    
     
    
            //每个jsonObject对象中包含id , name , sex
    
            String id = jsonObject.getString("id");
    
            String name = jsonObject.getString("name");
    
            String sex = jsonObject.getString("sex");
    
                    
    
            Log.d( "JSONObject" , "id =" + id);
    
            Log.d( "JSONObject" , "name=" + name);
    
            Log.d( "JSONObject" , "sex=" + sex);
    
          }
    
        }catch(Exception e){
    
          e.printStackTrace();
    
        }
    
      }
    
    }

    GSON解析:

    首先添加GSON依赖:
    
    compile 'com.google.code.gson:gson:2.7'
    
     
    
    然后创建与Json对应的类
    
    public class Student{
    
      private String id;
    
      private String name;
    
      private String sex;
    
     
    
      public void setId(String id){
    
        this.id = id;
    
      }
    
      public String getId(){
    
        return id;
    
      }
    
     
    
      public void setName(String name){
    
        this.name = name;
    
      }
    
      public String getName(){
    
        return name;
    
      }
    
     
    
      public void setSex(String sex){
    
        this.sex = sex;
    
      }
    
      public String getSex(){
    
        return sex;
    
      }
    
    }
    
     
    
    public class Main{
    
      .......
    
      parseJSONWithGSON(jsondata);
    
      .......
    
      private void parseJSONWithGSON(String jsondata){
    
        Gson gson = new Gson();
    
        List<Student> studentList = gson.fromJson(jsondata , new TypeToken<List<Student>>(){}.getType());
    
        //TypeToken类帮助捕获泛型信息,然后存入匿名内部类中,通过getType()方法获取类型
    
        for(Student student : studentList){ 
    
          Log.d( "JSONObject" , "id =" + student.getId());
    
          Log.d( "JSONObject" , "name=" + student.getName());
    
          Log.d( "JSONObject" , "sex=" + student.getSex());
    
        }
    
      }
    
    }
    
     
  • 相关阅读:
    [swustoj 411] 售货员的难题
    白书P61
    白书P60
    [ZOJ 3471] Most Powerful
    [HDU 3001] Travelling
    [转] acmer必看的26个对acm态度
    [HDU 1254] 推箱子
    [POJ 3311] Hie with the Pie
    [POJ 3254] Corn Fields
    power
  • 原文地址:https://www.cnblogs.com/qianbin/p/8423598.html
Copyright © 2011-2022 走看看