Json解析,让你不再困扰(非常详细)

                  Json解析的详解

一,用Json解析数据时的步骤:

第一步:先依赖xutils工具类库,在项目的属性中添加,把gson的jar包也变为可依赖的库

第二步:写布局
第三步:写bean
第四步:打log检验:
(1)检验其中的一个字符串
WeatherBean bean = gson.fromJson(result, WeatherBean.class);
Log.e("neirong", bean.retData.history.get(0).aqi);
(2)检验bean
processData(responseInfo.result);                        
Log.e("neirong", responseInfo.result);
第五步:写逻辑进行适配
第六步:不要忘记加网络权限,否则会出现报错retry error, curr request is null
Demo:主要代码展现
public class MainActivity extends Activity {
    private String url = "http://192.168.26.130:8080/tianqi.json.txt";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = (TextView) findViewById(R.id.tv);
        Button bt = (Button) findViewById(R.id.bt);
        bt.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                HttpUtils httpUtils = new HttpUtils();
                httpUtils.send(HttpMethod.GET, url, null,new RequestCallBack<String>() {

                    @Override
                    public void onSuccess(ResponseInfo<String> responseInfo) {
                        processData(responseInfo.result);
                        Log.e("neirong", responseInfo.result);
                    }
                    @Override
                    public void onFailure(HttpException error, String msg) {
                        
                    }
                });
            }
        });
        
    }
    private void processData(String result) {
        Gson gson = new Gson();
        WeatherBean bean = gson.fromJson(result, WeatherBean.class);
        Log.e("neirong", bean.retData.history.get(0).aqi);
    }

 
}
二,解析过程中需要的对象及过程:
(1)创建Xutils工具类中的的HttpUtils对象,调用send方法,需要四个参数:
第一个参数method:请求方式
第二个参数url:请求数据的url地址
第三个参数params:请求的参数
第四个参数 callBack:请求回调
(2)还需重写RequestCallBack<String>()的两个方法
 onSuccess(ResponseInfo<String> responseInfo)和onFailure(HttpException error, String msg)
在这两个方法中做一些请求成功或失败的处理
(3)在onSuccess方法中进行Json解析数据的操作:
Gson gson = new Gson();
WeatherBean bean = gson.fromJson(result, WeatherBean.class);
Log.e("neirong", bean.retData.history.get(0).aqi)<span style="font-family:SimSun;">;</span>

总结
检验请求数据是否成功的方法步骤:
(1)请求下来的数据先打一个Log:关于数据的一条内容,如果打印出来的话则说明解析成功,接下来进行第二步
(2)检验Bean是否写对了,Json解析的Bean必须与解析的内容一一对应,只可多不可少,如果将内容打印出来了则说明结果请求成功,即数据解析成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值