Android Gson 解析

来源:互联网 发布:映射网络驱动器 本机 编辑:程序博客网 时间:2024/05/21 15:45

Android Gson 解析

package com.example.gsondemo;import java.util.List;import java.util.Map;import com.google.gson.Gson;import android.os.Bundle;import android.util.Log;import android.app.Activity;public class GsonActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        /**         * 格式1:         * {"x":[],"y":[{"id":"110","name":"卡特"},{"id":"120","name":"德玛"}]}          *          * 格式2:         * {"x":"100","y":[{"id":"123","name":"木木"},{"id":"456","name":"叮咚"}],"z":{"user":"admin","password":"123456"}}         *          * 格式3:         * {"o":{"x":["a","b","c"]},"p":["d","e","f","g"]}         */        String value1 = "{\"x\":[],\"y\":[{\"id\":\"110\",\"name\":\"卡特\"},{\"id\":\"120\",\"name\":\"德玛\"}],\"z\":[]}";        String value2 = "{\"x\":\"100\",\"y\":[{\"id\":\"123\",\"name\":\"木木\"},{\"id\":\"456\",\"name\":\"叮咚\"}],\"z\":{\"user\":\"admin\",\"password\":\"123456\"}}";        String value3 = "{\"o\":{\"x\":[\"a\",\"b\",\"c\"]},\"p\":[\"d\",\"e\",\"f\",\"g\"]}";        //格式1测试://        Gson g = new Gson();//        GsonBean bean = g.fromJson(value1, GsonBean.class);//        //        for (String s:bean.x) {//          Log.d("格式1测试:", s);//      }//        //取值  //        for (LOL l : bean.y) {//          Log.d("格式1测试:", l.id+"~~~~~"+l.name);//      }      //格式2测试://      Gson g = new Gson();//      GsonBean bean = g.fromJson(value2, GsonBean.class);//      //      Log.d("x== ", bean.x);//      for (LOL s:bean.y) {//          Log.d("格式2测试:", s.id+"-----"+s.name);//      }//      Login login = bean.z;//      Log.d("格式2测试:", login.user+"-----"+login.password);        //格式3测试:        Gson g = new Gson();        GsonBean bean = g.fromJson(value3, GsonBean.class);        for (String value:bean.o.keySet()) {            Log.v("格式3测试:", value+"----------"+bean.o.get(value));        }        for (String value:bean.p) {            Log.v("格式3测试:", value);        }    }}/** * 首先我们需要定义一个序列化的Bean * */class GsonBean{    /**     * 格式1:     * {"x":[],"y":[{"id":"110","name":"卡特"},{"id":"120","name":"德玛"}]}     * 注意:     *      内部嵌套的类必须是static的,要不然解析会出错,     *      类里面的属性名必须跟Json字段里面的Key是一模一样的,     *      []括起来的部分是一个List,所以定义为 List<LOL> y 而只用{}嵌套的就定义为 public C c     *///  public List<String> x;//  //"y":[{"id":"110","name":"卡特"},{"id":"120","name":"德玛"}] 括号里面的就定义为一个对象//  public List<LOL> y;//属性名跟字段名一样//  //  public static class LOL{//      public String id;//      public String name;//  }    /**      * 格式2:      * {"x":"100","y":[{"id":"123","name":"木木"},{"id":"456","name":"叮咚"}],"z":{"user":"admin","password":"123456"}}      * 注意:      *     {}嵌套的就定义为 public Login z     *///  public String x;//  public List<LOL> y;//属性名跟字段名一样//  public Login z;//  public static class LOL{//      public String id;//      public String name;//  }//  public static class Login{//      public String user;//      public String password;//  }    /**     * 格式3:     * {"o":{"x":["a","b","c"]},"p":["d","e","f","g"]}     *      */    public Map<String,List<String>> o;    public List<String> p;}
测试结果如下:
0 0
原创粉丝点击