文档章节

获取json数据并解析

dianliang
 dianliang
发布于 2017/04/12 10:32
字数 261
阅读 114
收藏 0

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

© 著作权归作者所有

dianliang
粉丝 0
博文 4
码字总数 487
作品 0
海淀
私信 提问
关于使用Gson解析多层的Json数据的问题

请问各位Android和Java方面的大佬,这种好多层的json数据应如何创建Bean类并解析,小弟只解析成功一层的,可这么多层的试了一晚上Android studio还是提示解析失败。 小弟是用OKHTTP框架配合G...

lsnnic
2018/11/14
386
4
go提交json、获取json、解析json

猜你喜欢 Go语言的Json管理模式 golang json string remove field [笔记] Golang JSON go: json解析库go-simplejson使用 Golang 1.6: 数据库NULL值遇到JSON和模板(Template) beego下ie提示下...

d_watson
2016/05/24
43
0
Python从网络接口爬取json天气预报数据绘制高温低温双折线图

版权声明:本文为Zhang Phil原创文章,请不要转载! https://blog.csdn.net/zhangphil/article/details/88538112 Python从网络接口爬取json天气预报数据绘制高温低温双折线图 实现一个功能,...

zhangphil
03/14
0
0
JavaScript 数据实用程序库--Datalib

Datalib 是一个 JavaScript 数据实用程序库。它提供用于数据加载、 类型推理、 常见统计和字符串的模板。包括: 加载并解析数据文件(JSON, TopoJSON, CSV, TSV). 统计摘要(均值、偏差、中位数...

大胖森
2015/05/08
230
0
项目开发总结

项目开发关键词: (设计层面) : 表设计 表间关系设计 (技术层面) : 不同数据类型的获取,转换,传递(字符型 , 数值型 , 日期型 , 文件型 ) 前端:(不同数据类型(字符型 , 数值型 , 日期型 , 文件...

noteman
2015/12/16
45
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部