本文来自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();  
    }  
}  

}