Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android開發筆記之Gson解析

android開發筆記之Gson解析

編輯:關於Android編程

上篇我們講了一下的Json的解析,大家有沒有發現解析一個簡單的Json數據都寫了這麼多代碼,如果是一個復雜龐大的Json數據呢,那不得寫好多。

所以谷歌推出了一款Json解析神器——> Gson。

那 Gson 是用來干嘛的呢,它是用來將Json數據轉換成對象,或將對象轉換成Json數據。只需要導入相應 jar 包就可以。

這次的Json數據為:

{name:張三 ,
age:26,
phone:[131,132],
score:[{id:語文,fenshu:100},{id:數學,fenshu:60},{id:化學,fenshu:120}]
}

步驟:

①將下載好的Gson jar 包導入到 libs目錄下

這裡寫圖片描述

②創建Gson對象

Gson gson = new Gson();

③創建需要轉成的JavaBean

我這裡創建一個 Student 類

Student.java

//Student的屬性必須和Json中的KEY值一樣。
//JsonObject轉化成類,JsonArray轉化成集合
public class Student {
    public String name;
    public String age;
    public ArrayList phone = new ArrayList();
    public ArrayList score = new ArrayList();
    public class Score {
        public String id;
        public String fenshu;
        @Override
        public String toString() {
            return "id:" + id + "  fenshu:" + fenshu;
        }
    }
    @Override
    public String toString() {
        return "name:" + name + "   age:" + age
                + "    phone:" + phone.get(0)+ "," + phone.get(1) + "   score:" + score.toString();
    }
}

注:

1、需要生成的類的類名由你自己定義,沒有關系;

2、類裡面的屬性名必須跟Json字段裡面的Key是一模一樣的;

3、內部嵌套的用[]括起來的部分是一個List

④將Json數據轉化成Student對象

Student student = gson.fromJson(JSONDATA, Student.class);

效果:

這裡寫圖片描述

使用Gson是不是比傳統方法更簡單呢,趕緊試試吧

核心代碼:

activity_main.xml



    

MainAcitivity.java

public class MainActivity extends Activity {

    private TextView tv;
    //json數據
    public static final String JSONDATA = "{name:張三 ,age:26,phone:[131,132],score:[{id:語文,fenshu:100},{id:數學,fenshu:60},{id:化學,fenshu:120}]}";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.tv);
    }

    public void gson(View view) {
        //創建一個Gson對象
        Gson gson = new Gson();
        //將Json數據轉化成Student對象
        Student student = gson.fromJson(JSONDATA, Student.class);
        //將解析的Json數據顯示在TextView上
        tv.setText(student.toString());
    }
}

Student.java

public class Student {
    public String name;
    public String age;
    public ArrayList phone = new ArrayList();
    public ArrayList score = new ArrayList();
    public class Score {
        public String id;
        public String fenshu;
        @Override
        public String toString() {
            return "id:" + id + "  fenshu:" + fenshu;
        }
    }
    @Override
    public String toString() {
        return "name:" + name + "   age:" + age
                + "    phone:" + phone.get(0)+ "," + phone.get(1) + "   score:" + score.toString();
    }
}
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved