Android学習ノート------jsonデータの解析

10049 ワード

しばらくアンドロイドを習った.突然前に学んだことの多くは役に立たないと感じて、今からもう一度整理し直します.今は主にネットに関するアンドロイドの知識を勉強しています.結局、現在のアンドロイドアプリケーションの多くは、ネットワーククライアントとして関係しています.これは学習ノートの整理の第1編で、Jsonデータの解析を記録して、使うgsonバッグです.jsonはキー値ペアの集合である.Androidは一般的にjson解析に応用される場所はhttpを通じてサーバに情報を要求した後、サーバはjsonデータを返し、Androidはその中の各jsonオブジェクトを対応するBeanオブジェクトに解析し、以下のjsonデータのように:
[{"name":"zhangsan","age":20},["name":"lisi","age":19]]
これはjson配列で、2人のオブジェクトが含まれています.2つのオブジェクトを抽出することです
1、androidエンジニアリングでPersonクラスを生成し、personクラスのメンバーにはnameとageがあり、jsonデータの中のオブジェクトに対して.
2、1つのjson解析のクラスを書いて、直接1つのListオブジェクトを返して、解析した2つのpersonオブジェクトを含んで、クラスの構築は以下の通りです:
 1

 2

 3

 4

 5

 6

 7

 8

 9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40
package com.example.jsontest2;



import java.io.IOException;

import java.io.StringReader;

import java.util.ArrayList;

import java.util.List;



import com.google.gson.stream.JsonReader;



public class JsonUtils {

    private List<Person> persons = null;

    private Person person = null;



    public List<Person> getPersons(String jsonData){

        try {

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

            reader.beginArray();

            persons = new ArrayList<Person>();

            while (reader.hasNext()) {

                reader.beginObject();

                person = new Person();

                while(reader.hasNext()){

                String tagName = reader.nextName();

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

                    person.setName(reader.nextString());

                }else if(tagName.equals("age")){

                    person.setAge(reader.nextInt());

                }

            }

                reader.endObject();

                persons.add(person);

            }

            reader.endArray();      

        } catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return persons;

    }

}


必要に応じてJsonUtilsのgetPersonsメソッドを呼び出せばよい.これはもちろん比較的簡単なjsonデータ解析である.