这一篇我们将采用Gson类来解析json数据。把json解析出的数据传递给Person对象,这样我们就可以从Person对象中获得我们想要的数据。
在res/layout/main.xml中添加一个Button按钮:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="开始json数据解析" android:id="@+id/button" /> </LinearLayout>
由于为了方便,我把用到的类写在了一个java文件里面,代码如下:
import java.lang.reflect.Type;
import java.util.Iterator;
import java.util.LinkedList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class JsonTestMy1 extends Activity {
private String JsonData = "[{\"name\":\"huangwei\",\"age\":24,\"name\":\"lisi\",\"age\":36}]";
private Button button = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
JsonUtils.paresJsonData(JsonData);
}
});
}
}
class JsonUtils {
public static void paresJsonData(String str){
//通过TypeToken对象获取type对象,由于TypeToken对象中的构造方法都是受保护的,
//所以我们要生成TypeToken的实例通过TypeToken的getType()方法获取Type对象
Type type = new TypeToken<LinkedList<Person>>(){}.getType();
Gson gson = new Gson();
LinkedList<Person> persons = gson.fromJson(str, type);
for(Iterator<Person> iterator = persons.iterator();iterator.hasNext();){
Person person = iterator.next();
System.out.println(person.toString());
}
}
}
class Person {
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;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
以上就完成了简单的json数据的解析,并把数据放到一个javabean中,当然复杂的数据解析也是这个道理。