智慧北京:Gson解析的使用

本次内容需要用到gson开源包
Gson
1、解析(String —> Object)

  1. 标准解析
    //json解析 String —-> Object
    Gson gson = new Gson();
    //第二个参数指的是要转换成的类型,JavaBean的类型
    NewsCenterBean bean = gson.fromJson(json, Class);

2、合成(Object —> String)

3、json的数据类型

  1. [] 集合、数组
  2. 单个节点的value为数字:int double long
  3. 单个节点的value为true、false:boolean
  4. 如果节点下包含很多节点:对象节点(Object节点)

4、解析Json用到HiJson工具
HiJson页面
JSON下的节点

遇到Array 即定义为List类型
遇到数据定义为int或者long
遇到空、字符串定义为String
由于定义了List< E >必须为里面的E定义一个类型,声明一个对象再继续照着上面方法进行

这里写图片描述
这里写图片描述
回归正题
NewsCenterTabController.java

package huaxa.it.zhihuidemo.base.tab;

import com.google.gson.Gson;
import com.lidroid.xutils.HttpUtils;
import com.lidroid.xutils.exception.HttpException;
import com.lidroid.xutils.http.RequestParams;
import com.lidroid.xutils.http.ResponseInfo;
import com.lidroid.xutils.http.callback.RequestCallBack;
import com.lidroid.xutils.http.client.HttpRequest.HttpMethod;

import android.content.Context;
import android.drm.ProcessedData;
import android.graphics.Color;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.TextView;
import huaxa.it.zhihuidemo.base.TabController;
import huaxa.it.zhihuidemo.bean.NewsCenterBean;
import huaxa.it.zhihuidemo.utils.Constans;

/**
 * 
 * @项目名: ZhiHuiDemo
 * @包名: huaxa.it.zhihuidemo.base.tab
 * @类名: NewsCenterTabController
 * @创建者: 黄夏莲
 * @创建时间: 2016年10月9日 ,上午7:29:31
 * 
 * @描述: 新闻中心对应的controller
 */

public class NewsCenterTabController extends TabController
{

    private TextView    text;

    public NewsCenterTabController(Context context)
    {
        super(context);
    }

    protected View initContentView(Context context)
    {
        text = new TextView(context);

        text.setTextColor(Color.RED);
        text.setTextSize(24);
        text.setGravity(Gravity.CENTER);

        return text;
    }

    @Override
    public void initData()
    {
            ......
            @Override
            public void onSuccess(ResponseInfo<String> responseInfo)
            {

                ......
                // 数据的处理
                ProcessData(result);
            }

            /**
             * 数据处理
             * 
             * @param json
             */
            private void ProcessData(String json)
            {
                //1、json解析 String ----> Object
                Gson gson = new Gson();
                //第二个参数指的是要转换成的类型,JavaBean的类型
                NewsCenterBean bean = gson.fromJson(json, NewsCenterBean.class); 


                String title = bean.data.get(0).children.get(0).title;
                //校验一下
                Log.i(TAG,"校验"+ title);


                //2、将Model设置给View(Model--->View)


            }
        ......
    }
}

NewsCenterBean.java

package huaxa.it.zhihuidemo.bean;

import java.util.List;

/**
 * 
 * @项目名: ZhiHuiDemo
 * @包名: huaxa.it.zhihuidemo.bean
 * @类名: NewsCenterBean
 * @创建者: 黄夏莲
 * @创建时间: 2016年10月17日 ,下午11:56:15
 * 
 * @描述: 新闻中心页面的数据
 */
public class NewsCenterBean
{
    public List<NewsCenterMenuBean> data;
    public List<Long>   extend;
    public int  retcode;

    public class NewsCenterMenuBean{
        public List<NewCenterTabBean> children;
        public long id;
        public String title;
        public int type;

        public String url;
        public String url1;

        public String dayurl;   
        public String   excurl;
        public String weekurl;  
    }

    public class NewCenterTabBean{
        public long id;
        public String title;
        public int      type;
        public String url;
    }
}

运行结果:
这里写图片描述

运行时报错:java.lang.NoClassDefFoundError: com.google.gson.Gson
这里写图片描述
解决办法:
打钩这里这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值