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数据。数据从网络上获取。演示实例为 查询手机号码归属地。

  1. URL url;
  2. StringBuffer sb = new StringBuffer();
  3. String line = null;
  4. try {
  5. url = new URL(
  6. "http://api.showji.com/Locating/default.aspx?m=13763089126&output=json&callback=querycallback");
  7. HttpURLConnection conn = (HttpURLConnection) url.openConnection();
  8. InputStream is = conn.getInputStream();
  9. BufferedReader buffer = new BufferedReader(
  10. new InputStreamReader(is));
  11. while ((line = buffer.readLine()) != null) {
  12. sb.append(line);
  13. }
  14. catch (MalformedURLException e) {
  15. e.printStackTrace();
  16. catch (IOException e) {
  17. e.printStackTrace();
  18. }
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是一个实体类

  1. private Callerloc parse(String json) {
  2. Callerloc my = null;
  3. if (json == null || json.length() < )
  4. return null;
  5. try {
  6. my = new Callerloc();
  7. 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);
  1. my.setQueryResult(jsonobj.getString("QueryResult"));
  2. my.setProvince(jsonobj.getString("Province"));
  3. my.setCity(jsonobj.getString("City"));
  4. my.setAreaCode(jsonobj.getString("AreaCode"));
  5. my.setPostCode(jsonobj.getString("PostCode"));
  6. my.setCard(jsonobj.getString("Card"));
  7. 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"));
  1. } catch (JSONException e) {
  2. e.printStackTrace();
  3. }
  4. return my;
  5. }
		} catch (JSONException e) {
e.printStackTrace();
}
return my;
}

二、解析json数组

json数据为:[{name:"张三:",age:21,sex:"女"},{name:"李斯",age:21,sex:"女"},{name:"王五",age:21,sex:"女"}]

返回list

  1. private ArrayList<myjson> parsem(String json) {
  2. myjson my = null;
  3. if (json == null || json.length() < )
  4. return null;
  5. try {
  6. JSONArray jsonary = new JSONArray(json);
  7. ArrayList<myjson> objlist = new ArrayList<myjson>();
  8. for (int i = ; i < jsonary.length(); i++) {
  9. my = new myjson();
  10. JSONObject jsonobj = jsonary.getJSONObject(i);
  11. my.set_name(jsonobj.getString("name"));
  12. my.set_age(jsonobj.getInt("age"));
  13. my.set_sex(jsonobj.getString("sex"));
  14. objlist.add(my);
  15. }
  16. return objlist;
  17. catch (JSONException e) {
  18. e.printStackTrace();
  19. }
  20. return null;
  21. }

网络爬虫返回json处理数据的更多相关文章

  1. ios网络学习------6 json格式数据的请求处理

    ios网络学习------6 json格式数据的请求处理 分类: IOS2014-06-30 20:33 471人阅读 评论(3) 收藏 举报 #import "MainViewContro ...

  2. Struts2+Jquery实现ajax并返回json类型数据

    来源于:http://my.oschina.net/simpleton/blog/139212 摘要 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的 ...

  3. 转载:Struts2+Jquery实现ajax并返回json类型数据

    摘要: 主要实现步骤如下: 1.JSP页面使用脚本代码执行ajax请求 2.Action中查询出需要返回的数据,并转换为json类型模式数据 3.配置struts.xml文件 4.页面脚本接受并处理数 ...

  4. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  5. 返回json格式数据乱码

    本文为博主原创,未经允许不得转载: 原本返回json格式数据的代码: @ResponseBody @RequestMapping(value = "getListByTime", ...

  6. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  7. 使用jQuery发送POST,Ajax请求返回JSON格式数据

    问题: 使用jQuery POST提交数据到PHP文件, PHP返回的json_encode后的数组数据,但jQuery接收到的数据不能解析为JSON对象,而是字符串{"code" ...

  8. Django 1.8.11 查询数据库返回JSON格式数据

    Django 1.8.11 查询数据库返回JSON格式数据 和前端交互全部使用JSON,如何将数据库查询结果转换成JSON格式 环境 Win10 Python2.7 Django 1.8.11 返回多 ...

  9. 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)

    原文地址http://blog.csdn.net/qy20115549/article/details/52203722 本文为原创博客,仅供技术学习使用.未经允许,禁止将其复制下来上传到百度文库等平 ...

随机推荐

  1. Samba在CentOS下的图形化界面的安装

    第一步:构建yum仓库(在此用的是北交大的yum仓库) 打开目录/etc/yum.repos.d下的CentOS-Base.repo文件,此处是我自己建的yum仓库,修改里面的链接地址为北交大的镜像的 ...

  2. JDK源码学习--String篇(-)

    工作三年了,用了三年的JAVA,突然发现竟然没有好好的看下JDK的源码,整天用着的String,只是大概知道怎么回事,其中的实现逻辑却是一头雾水. 知耻而后勇,加油!!! java.lang.Stri ...

  3. errorPlacement的位置问题

    做一个前端的验证,使用了JQUERY.Validate 在errorPlacement上纠结了半天: 百度大多数都是一个答案: errorPlacement: function(error, elem ...

  4. Application(basic)----Easyui

    一,效果图. 二,源代码. <!DOCTYPE html><html><head> <meta charset="UTF-8"> & ...

  5. SnappyDB—Android上的NoSQL数据库简介

    参考:http://www.open-open.com/lib/view/open1420816891937.html 参考:http://android-arsenal.com/details/1/ ...

  6. Unity3D Android手机开发环境配置

    Unity3D Android手机开发环境配置 Date:2014-01-01 07:09 1.配置eclipse环境:首先在官网下载安装包:http://developer.android.com/ ...

  7. 输入输出函数库stdio.h

    函数名 函数类型与形参类型 函数功能 函数返回值 clearerr void clearerr(fp) FILE * fp; 清除文件指针错误 无 close int close(fp) int fp ...

  8. oracle服务器和客户端字符集的查看和修改

    一.什么是oracle字符集 Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系.ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据.它使数据库 ...

  9. SPOJ 7258 Lexicographical Substring Search(后缀自动机)

    [题目链接] http://www.spoj.com/problems/SUBLEX/ [题目大意] 给出一个字符串,求其字典序排名第k的子串 [题解] 求出sam上每个节点被经过的次数,然后采用权值 ...

  10. Windows API中几个函数的总结

    [DllImport("User32.dll", EntryPoint = "FindWindow")] public static extern IntPtr ...