网络爬虫返回json处理数据
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
JSON 表示名称 / 值对的方式
按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对":
{ "name": "Brett", "lage":22,"sex": "女" } ,这表示了一个JsonObject。
[{name:"张三:",age:21,sex:"女"},{name:"李斯",age:21,sex:"女"},{name:"王五",age:21,sex:"女"}],使用中括弧表示JsonArray,是json对象数组。
一、解析第一种单个json对象的json数据。数据从网络上获取。演示实例为 查询手机号码归属地。
- URL url;
- StringBuffer sb = new StringBuffer();
- String line = null;
- try {
- url = new URL(
- "http://api.showji.com/Locating/default.aspx?m=13763089126&output=json&callback=querycallback");
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- InputStream is = conn.getInputStream();
- BufferedReader buffer = new BufferedReader(
- new InputStreamReader(is));
- while ((line = buffer.readLine()) != null) {
- sb.append(line);
- }
- } catch (MalformedURLException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
URL url;
StringBuffer sb = new StringBuffer();
String line = null;
try {
url = new URL(
"http://api.showji.com/Locating/default.aspx?m=13763089126&output=json&callback=querycallback");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream is = conn.getInputStream();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(is));
while ((line = buffer.readLine()) != null) {
sb.append(line);
} } catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
此处获取的数据为:
querycallback({"Mobile":"13763******","QueryResult":"True","Province":"广东","City":"湛江","AreaCode":"0759","PostCode":"524000","Corp":"中国移动","Card":"GSM"});
需要截取这个json对象出来。
String js = sb.substring(sb.indexOf("{"), sb.indexOf("}") + 1);
下面函数解析json对象,返回一个Callerloc对象
Callerloc是一个实体类
- private Callerloc parse(String json) {
- Callerloc my = null;
- if (json == null || json.length() < )
- return null;
- try {
- my = new Callerloc();
- JSONObject jsonobj = new JSONObject(json);
private Callerloc parse(String json) {
Callerloc my = null; if (json == null || json.length() < 1)
return null;
try {
my = new Callerloc();
JSONObject jsonobj = new JSONObject(json);
- my.setQueryResult(jsonobj.getString("QueryResult"));
- my.setProvince(jsonobj.getString("Province"));
- my.setCity(jsonobj.getString("City"));
- my.setAreaCode(jsonobj.getString("AreaCode"));
- my.setPostCode(jsonobj.getString("PostCode"));
- my.setCard(jsonobj.getString("Card"));
- my.setCorp(jsonobj.getString("Corp"));
my.setMobile(jsonobj.getString("Mobile"));
my.setQueryResult(jsonobj.getString("QueryResult"));
my.setProvince(jsonobj.getString("Province"));
my.setCity(jsonobj.getString("City"));
my.setAreaCode(jsonobj.getString("AreaCode"));
my.setPostCode(jsonobj.getString("PostCode"));
my.setCard(jsonobj.getString("Card"));
my.setCorp(jsonobj.getString("Corp"));
- } catch (JSONException e) {
- e.printStackTrace();
- }
- return my;
- }
} catch (JSONException e) {
e.printStackTrace();
}
return my;
}
二、解析json数组
json数据为:[{name:"张三:",age:21,sex:"女"},{name:"李斯",age:21,sex:"女"},{name:"王五",age:21,sex:"女"}]
返回list
- private ArrayList<myjson> parsem(String json) {
- myjson my = null;
- if (json == null || json.length() < )
- return null;
- try {
- JSONArray jsonary = new JSONArray(json);
- ArrayList<myjson> objlist = new ArrayList<myjson>();
- for (int i = ; i < jsonary.length(); i++) {
- my = new myjson();
- JSONObject jsonobj = jsonary.getJSONObject(i);
- my.set_name(jsonobj.getString("name"));
- my.set_age(jsonobj.getInt("age"));
- my.set_sex(jsonobj.getString("sex"));
- objlist.add(my);
- }
- return objlist;
- } catch (JSONException e) {
- e.printStackTrace();
- }
- return null;
- }
网络爬虫返回json处理数据的更多相关文章
- ios网络学习------6 json格式数据的请求处理
ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...
- Struts2+Jquery实现ajax并返回json类型数据
来源于:http://my.oschina.net/simpleton/blog/139212 摘要 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的 ...
- 转载:Struts2+Jquery实现ajax并返回json类型数据
摘要: 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数 ...
- Spring MVC 学习笔记11 —— 后端返回json格式数据
Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...
- 返回json格式数据乱码
本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...
- WebService返回json格式数据供苹果或者安卓程序调用
1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...
- 使用jQuery发送POST,Ajax请求返回JSON格式数据
问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...
- Django 1.8.11 查询数据库返回JSON格式数据
Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...
- 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)
原文地址http://blog.csdn.net/qy20115549/article/details/52203722 本文为原创博客,仅供技术学习使用.未经允许,禁止将其复制下来上传到百度文库等平 ...
随机推荐
- jquery常用语句总结
一.jquery中text val html attr的使用区别 html和innerHTMl是一样的,可以获得和设置指定元素如<p>中的html标签和文本如:设置值: $("p ...
- [Java]HashMap的两种排序方式
先将 Map 中的 key 和 value 全部取出来封装成 JavaBea 数组,再将这个数组排序,排序完成后,重新写回 Map 中,写回时采用 LinkedHashMap 可以保证迭代的顺序. 下 ...
- spring拦截器的定义
(一).拦截器的定义 1.为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的 2.什么事拦截器:在AOP(Aspect-Oriented Programming)中 ...
- BZOJ 1021: [SHOI2008]Debt 循环的债务( dp )
dp(i, j, k)表示考虑了前i种钱币(从小到大), Alice的钱数为j, Bob的钱数为k, 最小次数. 脑补一下可以发现, 只有A->B.C, B->A.C, C->A.B ...
- Deep Learning for NLP学习翻译笔记(2)
Deep Learning for NLP Deep Learning for NLP Lecture 2:Introduction to Teano enter link description h ...
- jQuery数据缓存data(name, value)详解及实现
一. jQuery数据缓存的作用 jQuery数据缓存的作用在中文API中是这样描述的:“用于在一个元素上存取数据而避免了循环引用的风险”.如何理解这句话呢,看看我下面的举例,不知道合不合适,如果你有 ...
- poj1637 Sightseeing tour 混合图欧拉回路判定
传送门 第一次做这种题, 尽管ac了但是完全不知道为什么这么做. 题目就是给一些边, 有向边与无向边混合, 问你是否存在欧拉回路. 做法是先对每个点求入度和出度, 如果一条边是无向边, 就随便指定一个 ...
- linux环境变量配置总结
LD_LIBRARY_PATH: 动态库的查找路径设置:方法一: export LD_LIBRARY_PATH=LD_LIBRARY_PATH:/XXX 但是登出后就失效方法二: 修改~/.bash ...
- Noip2013调试技巧
关于调试技巧,个人觉得还是很重要的,于是把自己之前写过的总结拿出来,修修补补再复习一下. F7 单步跟踪法 这是大家都最常用的调试方法,可以一步一步去跟踪程序的运行方向,以及各种变量的变化情况,当发现 ...
- css代码优化篇
心情比较不咋地,不想说什么了 代码演示如下: 不推荐 .fw-800 { font-weight: 800; } .red { color: red; } 推荐 .heavy { font-weigh ...