获取json数据并解析

1、json数据

[{"id":"1","color":"red","name":"Android"},

{"id":"2","color":"yellow","name":"IOS"},

{"id":"3","color":"blck","name":"C++"},

{"id":"4","color":"red","name":".NET"},

{"id":"5","color":"back","name":"JAVA"}]

2、activity_main布局


    <Button
        android:id="@+id/json"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="解析Json数据" />

3、MainActivity.java

使用okhttp必须导入架包:http://download.csdn.net/detail/qq_26650589/9811409

Button button=(Button) findViewById(R.id.json);
		button.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				//使用okhttp获取数据
				new Thread(new Runnable() {
					@Override
					public void run() {
						OkHttpClient okHttpClient=new OkHttpClient();
						Request request=new Request.Builder().url("http://10.0.2.2/date.json").build();
						try {
							Response response=okHttpClient.newCall(request).execute();
							//得到数据date
							final String date=response.body().string();
							//将数据传入解析方法
							JsonJX(date);

						} catch (Exception e) {

							e.printStackTrace();
						} 

					}
               }).start();
			}
		});
	}
	private void JsonJX(String date) {  

		JSONArray jsonArray;
		try {
			jsonArray = new JSONArray(date);
			Log.i("TAG", "------2--------"+jsonArray);
			for (int i = 0; i < jsonArray.length(); i++) {
				//解析json
				JSONObject jsonObject = jsonArray.getJSONObject(i);
				final String id = jsonObject.getString("id");
				String color = jsonObject.getString("color");
				String name = jsonObject.getString("name");
				//打印日志
				Log.i("TAG", "id:"+id+"name:"+name+"color"+color);

			}
		} catch (Exception e) {
			e.printStackTrace();
			Log.i("TAG", "--------"+e.getMessage());
		}

4、添加网络权限

<uses-permission android:name="android.permission.INTERNET"/>

 

打印结果:

如果模拟器是4.0以下将解析失败,提示String无法换换JsonArray。连接:https://my.oschina.net/mstian/blog/185716

转载于:https://my.oschina.net/u/3204932/blog/877394

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值