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

来源:互联网 发布:java音乐网站 编辑:程序博客网 时间:2024/05/01 04:59

                  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必须与解析的内容一一对应,只可多不可少,如果将内容打印出来了则说明结果请求成功,即数据解析成功
1 0
原创粉丝点击