android學習筆記之JSON .

來源:互聯網
上載者:User

 

什麼是JSON

1、 JSON:JavaScript Object Notation

2、 JSON資料是一系列索引值對的集合

3、 JSON已經被大多數開發人員接受,在網路資料的傳輸當中應用非常廣泛

4、 JSON相對於XML來講解析稍微方便一些

 

JSON和XML

1、 JSON和XML的資料可讀性基本相同

2、 JSON和XML同樣擁有豐富的解析手段

3、 JSON相對於XML來講,資料體積小

4、 JSON和JavaScript的互動更加方便

5、 JSON對資料的描述性相對較差

 

JsonReader 從android 3.0版開始支援

因此使用google的gson api,需要下載jar包並手動加入。

 

jsonData為需要解析的json資料:

[{"name":"zhangsan","age":20},{"name":"lisi","age":30}]

try{

       JsonReaderreader = new JsonReader(new StringReader(jsonData));

       reader.beginArray();

       while(reader.hasNext()){

              reader.beginObject();

              while(reader.hasNext()){

                     StringtagName = reader.nextName();

                     if(tagName.equals("name")){

                            System.out.prinltn("name--->"+ reader.nextString());

                     }

                     elseif(tagName.equals("age")){

                            System.out.println("age--->"+ reader.nextString());

                     }

              }

              reader.endObject();

       }

       reader.endArray();

}

catch(Exception e){

       e.printStackTrace();

}

 

 

 

 

 

jsonData為 {"name":"Michael","age":30}

 

public class User{

    private String name;

    private int age;

    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;

    }

}

 

Gson gson = new Gson();  //gson類庫提供的對象

User user = gson.fromJson(jsonData,User.class);//將JSON對象轉換成User類對象

 

 

jsonData為[{"name":"Michael","age":30},{"name":"mary","age":20}]

Type listType = new TypeToken<LinkedList<User>>(){}.getType();

Gson gson = new Gson();

LinkedList<User> users = gson.fromJson(jsonData,
listType);//將多個資料轉換成User數組

for(Iterator iterator = users.iterator(); iterator.hasNext();){

    User user = (User)iterator.next();

   

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.