android 中解析json格式數據

本文來自http://tonysun3544.iteye.com/category/188238

package com.tony.json;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class JsonActivity extends Activity {
/* Called when the activity is first created. /

private String jsonData = "[{\"name\":\"zhangsan\",\"age\":22},{\"name\":\"lisi\",\"age\":23}]";  
private Button jsonButton;  
@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.main);  
    jsonButton = (Button) findViewById(R.id.json_button);  
    jsonButton.setOnClickListener(new View.OnClickListener() {  

        @Override  
        public void onClick(View v) {  
            JsonUtils jsonUtils = new JsonUtils();  
            jsonUtils.parseJson(jsonData);  
        }  
    });  
}  

}

這個類中主要是解析json數組:

Java代碼 收藏代碼
package com.tony.json;

import java.io.IOException;
import java.io.StringReader;

import android.util.Log;

import com.google.gson.stream.JsonReader;

public class JsonUtils {
private static final String TAG = “JsonUtils”;

public void parseJson(String jsonData){  
    JsonReader reader = new JsonReader(new StringReader(jsonData));  
    try {  
        reader.beginArray();    // 開始解析數組  
        while (reader.hasNext()) {  
            reader.beginObject();   // 開始解析對象  
            while (reader.hasNext()) {  
                String tagName = reader.nextName(); // 得到鍵值對中的key  
                if (tagName.equals("name")) {   // key爲name時  
                    Log.i(TAG, "name--------->" + reader.nextString());  // 得到key中的內容  
                }else if (tagName.equals("age")) {  // key爲age時  
                    Log.i(TAG, "age--------->" + reader.nextInt());  // 得到key中的內容  
                }  
            }  
            reader.endObject();  
        }  
        reader.endArray();  
    } catch (IOException e) {  
        e.printStackTrace();  
    }  
}  

}

發佈了50 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章