欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android解析JSON數(shù)據(jù)的方法分析

 更新時(shí)間:2016年06月23日 11:09:50   作者:hbiao68  
這篇文章主要介紹了Android解析JSON數(shù)據(jù)的方法,結(jié)合實(shí)例形式演示了Android解析json格式數(shù)據(jù)的原理與相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Android解析JSON數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:

JSON作為一種“輕量”的數(shù)據(jù)結(jié)構(gòu)傳遞數(shù)據(jù),在JS中有廣泛的應(yīng)用

Google公司對JSON的解析提供了gson.jar這個(gè)包,它不依賴于其他任何JAR包;自從Android3.0中已經(jīng)合入了該解析器的功能,但之前的版本是沒有的。

findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
    jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
    MainActivity.parseJson(jsonData);
  }
});
public static void parseJson(String jsonStr){
  //如果要解析JSON數(shù)據(jù),首先要有一個(gè)JsonReader對象
  JsonReader jsonReader = new JsonReader(new StringReader(jsonStr));
  try {
  //開始遍歷數(shù)組(多個(gè)JSON對象)
    jsonReader.beginArray();
    while(jsonReader.hasNext()){
    //開始遍歷JSON對象(含有多個(gè)屬性)
      jsonReader.beginObject();
      while(jsonReader.hasNext()){
        String tagName = jsonReader.nextName();
        if(tagName.equals("name")){
          System.out.println("name --> " + jsonReader.nextString());
        }else if(tagName.equals("age")){
          System.out.println("age --> " + jsonReader.nextString());
        }
      }
    //遍歷JSON對象結(jié)束
      jsonReader.endObject();
    }
    //遍歷數(shù)組結(jié)束
    jsonReader.endArray();
  } catch (IOException e) {
    e.printStackTrace();
  }
}

將JSON格式轉(zhuǎn)換為類的步驟如下:

//先定義一個(gè)類
public class User {
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}
//只將一組數(shù)據(jù)轉(zhuǎn)換的方法
findViewById(R.id.parseObj).setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
    String jsonData = "{\"name\":\"Michael\",\"age\":20}";
    Gson gson = new Gson();
    User user = gson.fromJson(jsonData, User.class);
    System.out.println("name--->" + user.getName());
    System.out.println("age---->" + user.getAge());
  }
});
//將多組數(shù)據(jù)轉(zhuǎn)換的方法
findViewById(R.id.parseObjs).setOnClickListener(new OnClickListener(){
  @Override
  public void onClick(View v) {
    String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
    Type listType = new TypeToken<LinkedList<User>>(){}.getType();
    Gson gson = new Gson();
    LinkedList<User> users = gson.fromJson(jsonData, listType);
    for (Iterator iterator = users.iterator(); iterator.hasNext();) {
      User user = (User) iterator.next();
      System.out.println("name--->" + user.getName());
      System.out.println("age---->" + user.getAge());
    }
  }
});

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android文件操作技巧匯總》、《Android編程開發(fā)之SD卡操作方法匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)

希望本文所述對大家Android程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論