Json解析的简单介绍
2016-07-25 08:52
399 查看
Json解析的简单介绍
JSON是一款轻量级的数据交换格式
解析JSON需要两个类:
JSONObject : 描述一个JSON对象 {}
JSONArray : 描述一个JSON数组 []
下面是Json解析的一个简单的小例子,通过这个例子应该能使像我一样的一些新手可以简单的理解一下Json,并且
可以简单的使用Json:
例如访问ApiStore找到一个易源笑话的接口,会返回给Json格式的字符串,下面是我截取的一部分:
JSON返回示例 :
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_body": {
"allNum": 2980,
"allPages": 149,
"contentlist": [
{
"ct": "2015-08-13 13:10:26.149",
"text": "新人发帖求过…… 媳妇最近怀孕了…天天这也不想吃那也不想吃…有一天发脾气要我给他做
想吃的,结果做了好多还是没有想吃的…最后着急了大喊:再做不出我想吃的我就去大街上要
饭……我想说:你吃什么自己都不知道我怎么做啊…唉…想想男人女人都不容易啊…",
"title": "媳妇儿有了…",
"type": 1
},
{
"ct": "2015-08-13 13:10:26.149",
"text": "为了让自己多活动,我把放在电脑桌上的零食拿到了外面的茶几上,这样最起码为了吃我也
能走动走动。…………现在我的零食经常会过期……",
"title": "计划失败,吃货兼网虫的悲哀",
"type": 1
},
······
使用Json去解析这段代码的一小段基础代码:
String httpUrl = "http://apis.baidu.com/showapi_open_bus/showapi_joke/joke_text";
String httpArg = "page=1";
String jsonResult = request(httpUrl, httpArg);
System.out.println(jsonResult);
JSONObject object = new JSONObject(jsonResult);
JSONObject objj = object.getJSONObject("showapi_res_body");
JSONArray ary = objj.getJSONArray("contentlist");
for (int i = 0; i < ary.length(); i++) {
JSONObject obj2 = ary.getJSONObject(i);
Joke joke = new Joke();
joke.setTitle(obj2.getString("title"));
joke.setText(obj2.getString("text"));
joke.setCt(obj2.getString("ct"));
jokes.add(joke);
解析完成之后,可以通过输入输出流让它显示到界面上:
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey", "自己的apikey");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
这个解析的具体代码:http://pan.baidu.com/disk/home#list/path=%2FAndroid
JSON是一款轻量级的数据交换格式
解析JSON需要两个类:
JSONObject : 描述一个JSON对象 {}
JSONArray : 描述一个JSON数组 []
下面是Json解析的一个简单的小例子,通过这个例子应该能使像我一样的一些新手可以简单的理解一下Json,并且
可以简单的使用Json:
例如访问ApiStore找到一个易源笑话的接口,会返回给Json格式的字符串,下面是我截取的一部分:
JSON返回示例 :
{
"showapi_res_code": 0,
"showapi_res_error": "",
"showapi_res_body": {
"allNum": 2980,
"allPages": 149,
"contentlist": [
{
"ct": "2015-08-13 13:10:26.149",
"text": "新人发帖求过…… 媳妇最近怀孕了…天天这也不想吃那也不想吃…有一天发脾气要我给他做
想吃的,结果做了好多还是没有想吃的…最后着急了大喊:再做不出我想吃的我就去大街上要
饭……我想说:你吃什么自己都不知道我怎么做啊…唉…想想男人女人都不容易啊…",
"title": "媳妇儿有了…",
"type": 1
},
{
"ct": "2015-08-13 13:10:26.149",
"text": "为了让自己多活动,我把放在电脑桌上的零食拿到了外面的茶几上,这样最起码为了吃我也
能走动走动。…………现在我的零食经常会过期……",
"title": "计划失败,吃货兼网虫的悲哀",
"type": 1
},
······
使用Json去解析这段代码的一小段基础代码:
String httpUrl = "http://apis.baidu.com/showapi_open_bus/showapi_joke/joke_text";
String httpArg = "page=1";
String jsonResult = request(httpUrl, httpArg);
System.out.println(jsonResult);
JSONObject object = new JSONObject(jsonResult);
JSONObject objj = object.getJSONObject("showapi_res_body");
JSONArray ary = objj.getJSONArray("contentlist");
for (int i = 0; i < ary.length(); i++) {
JSONObject obj2 = ary.getJSONObject(i);
Joke joke = new Joke();
joke.setTitle(obj2.getString("title"));
joke.setText(obj2.getString("text"));
joke.setCt(obj2.getString("ct"));
jokes.add(joke);
解析完成之后,可以通过输入输出流让它显示到界面上:
BufferedReader reader = null;
String result = null;
StringBuffer sbf = new StringBuffer();
httpUrl = httpUrl + "?" + httpArg;
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
// 填入apikey到HTTP header
connection.setRequestProperty("apikey", "自己的apikey");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
sbf.append("\r\n");
}
reader.close();
result = sbf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return result;
这个解析的具体代码:http://pan.baidu.com/disk/home#list/path=%2FAndroid
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories