Android Gson 解析

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值