日期:2014-05-16 浏览次数:20412 次
这一篇我们将采用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中,当然复杂的数据解析也是这个道理。?