这篇文章就是示范如何用GSON把JSON数据与实体类进行相互转化,需要用到gson-2.3.1.jar这个包

import java.lang.reflect.Type;import java.util.ArrayList;import java.util.List;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.reflect.TypeToken;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener {    private Button bt_shitiToJson;    private Button bt_jsonToShiti;    private Button bt_jsonToList;    private Button bt_listToJson;    private Gson gson;    private GsonBuilder builder;    private Person person;    private String jsonTest,jsonListTest;    private List persons;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        init();    }    private void init() {        //寻找控件        bt_shitiToJson=(Button) findViewById(R.id.bt_shitiToJson);        bt_jsonToShiti=(Button) findViewById(R.id.bt_jsonToShiti);        bt_listToJson=(Button) findViewById(R.id.bt_listToJson);        bt_jsonToList=(Button) findViewById(R.id.bt_jsonToList);        //增加点击事件        bt_shitiToJson.setOnClickListener(this);        bt_jsonToShiti.setOnClickListener(this);        bt_listToJson.setOnClickListener(this);        bt_jsonToList.setOnClickListener(this);        //这两句代码必须的,为的是初始化出来gson这个对象,才能拿来用        builder=new GsonBuilder();        gson=builder.create();        //先制造出一个"人",第一个按钮点击的时候要用到        person=new Person();        person.setName("张三");        person.setAge(20);        person.setTall(160);    }    @Override    public void onClick(View v) {        switch(v.getId()){        case R.id.bt_shitiToJson://实体类转换为json数据            jsonTest=gson.toJson(person, Person.class);            Log.e("test", jsonTest);            //打印出来结果为            // {"name":"张三","age":20,"tall":160}            break;        case R.id.bt_jsonToShiti://json数据转换为实体类            Person p=gson.fromJson(jsonTest, Person.class);            Log.e("test", p.getName()+" "+p.getAge()+" "+p.getTall());            //打印出来结果为            //张三 20 160            break;        case R.id.bt_listToJson://存储实体类的集合转换为json数据集合            //手动制造一个存有三人信息的集合,以便进行测试            persons=new ArrayList();            for(int i=0;i<3;i++){                Person p1=new Person();                p1.setName("李四"+i);                p1.setAge(23+i);                p1.setTall(165+i);                persons.add(p1);            }            //persons被制造好了,现在开始测试            //需要注意的是这里的Type导入的是java.lang.reflect.Type的包            //TypeToken导入的是 com.google.gson.reflect.TypeToken的包            Type type=new TypeToken>(){}.getType();            jsonListTest=gson.toJson(persons, type);            Log.e("test", jsonListTest);            //打印出来的数据// [{"name":"李四0","age":23,"tall":165},{"name":"李四1","age":24,"tall":166},{"name":"李四2","age":25,"tall":167}]            break;        case R.id.bt_jsonToList://json数据的集合转换为存储实体类的集合            List p2=new ArrayList();            Type type1=new TypeToken>(){}.getType();            p2=gson.fromJson(jsonListTest, type1);            Log.e("test", p2.size()+"");            //打印了存储实体类集合的大小,不用看啦,,大小肯定是3            //打印结果            //3            break;        }    }}

public class Person {//人的名称private String name;//人的年龄private int age;//人的身高private int tall;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;}public int getTall() {    return tall;}public void setTall(int tall) {    this.tall = tall;}}


更多相关文章

  1. android 使用SharedPreferences保存list数据
  2. Android(安卓)积累一些RxJava2.0有关的知识
  3. android中SharedPerferences保存数据
  4. android手记之----Activity
  5. android奇怪问题收集
  6. Android(安卓)TabHost的使用
  7. Android传感器的介绍
  8. Android(安卓)实时视频采集—Cameara预览采集
  9. android camera开发笔记

随机推荐

  1. Android自学笔记(番外篇):全面搭建Linux环境
  2. Android中回调接口的使用
  3. android——android中测试框架AndroidTes
  4. 简单控件的UI界面设计
  5. 修复android获取ip地址失败 Fix Obtainin
  6. 【转】Android 字符串的加密和解密
  7. Android获取activity的所有子view(使用到
  8. android 中 webview 怎么用 localStorage
  9. Android:ViewPager制作幻灯片
  10. cocos2dx android 真机调试时Logcat不显