本文实例讲述了Android通过json向MySQL中读取数据的方法。分享给大家供大家参考,具体如下:

首先 要定义几个解析json的方法parseJsonMulti,代码如下:

private void parseJsonMulti(String strResult) {

try {

Log.v("strResult11","strResult11="+strResult);

int index=strResult.indexOf("[");

if(index>0)

strResult=strResult.substring(index, strResult.length());

Log.v("strResult22","strResult22="+strResult);

wifiMapData = new JSONArray(strResult);

Log.v("wifiMapDataLength",""+wifiMapData.length());

for(int i = 0; i < wifiMapData.length() ; i++){///基站信息处理

///MapData m=new MapData(1, dLat[5], dLong[5], 10, 20, 300, 500, 105, "教1", 1, 1, 4);

JSONObject jsonObject = wifiMapData.getJSONObject(i);

int id=Integer.parseInt(jsonObject.getString("id")); //id

// if(jsonObject.isNull("mac_address")) mac_address="";

String mac_address = jsonObject.getString("mac_address");//wifi的mac地址

String wifi_name=jsonObject.getString("wifi_name"); //ssid

if(!jsonObject.isNull("lat")&&!jsonObject.isNull("lon")){

lat= Double.valueOf(jsonObject.getString("lat"));//纬度

lon=Double.valueOf(jsonObject.getString("lon"));//经度

}

String location_name=jsonObject.getString("location_name"); //ssid

String wifi_adds = jsonObject.getString("wifi_adds");//wifi地址 具体到多少路多少号

String area = jsonObject.getString("area");//北京的什么区

String location_type = jsonObject.getString("location_type");//地点是个什么类型的,写字楼??

String ap_free = jsonObject.getString("ap_free");//ap是否免费

String category = jsonObject.getString("category");//ap是否免费

String password = jsonObject.getString("password");//ap是否免费

String capabilities = jsonObject.getString("capabilities");//ap是否免费

String user_score = jsonObject.getString("user_score");//ap是否免费

String NW_score = jsonObject.getString("NW_score");//ap是否免费

}

// tvJson.setText(s);

} catch (JSONException e) {

System.out.println("Jsons parse error !");

e.printStackTrace();

}

}

再定义一个向MySql发送http请求的方法connServerForResult,代码如下:

private String connServerForResult(String strUrl) {

// HttpGet对象

HttpGet httpRequest = new HttpGet(strUrl);

String strResult = "";

try {

// HttpClient对象

HttpClient httpClient = new DefaultHttpClient();

// 获得HttpResponse对象

HttpResponse httpResponse = httpClient.execute(httpRequest);

if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {

// 取得返回的数据

strResult = EntityUtils.toString(httpResponse.getEntity());

}

} catch (ClientProtocolException e) {

Toast.makeText(Setting.this,

"protocol error", Toast.LENGTH_SHORT).show();

e.printStackTrace();

} catch (IOException e) {

Toast.makeText(Setting.this,

"IO error", Toast.LENGTH_SHORT).show();

e.printStackTrace();

}

return strResult;

}

然后就是在主程序中调用这两个方法:代码如下

String strUrl1 = "http://192.168.1.2/call_for_wifiMapData.php";

//获得返回的Json字符串

String strResult1 = connServerForResult(strUrl1);

Log.v("strResult1",strResult1);

parseJsonMulti(strResult1);

只有几句话而已,php同样要替换成你自己的文件路径,

php代码如下:

$jsonArrayString = $_POST["jsonArrayString"];

$jsonString = $_POST["jsonString"];

$objArray=json_decode($jsonArrayString,true);

$obj=json_decode($jsonString);

$lon = (float)$obj->lon;

$lat = (float)$obj->lat;

$distance=(float)$obj->distance;

if($lat==null||$lat==0){

$lat=39.990132;

$lon=116.332224;

$distance=100000;

}

将cell表中与点(lat,lon)距离小于distance的点打包回来

$con = mysql_connect("localhost","root",null);

if (!$con) {

die('Could not connect:'.mysql_error() );

}

mysql_select_db("a0722152915", $con);

mysql_query("set names 'utf8'");

$sqlfind = "select * from `wifi`";

$resultFind = mysql_query($sqlfind, $con);

$length=mysql_num_rows($resultFind);

$arr=array();

$j=0;

for($i=0;$i

{

$row = mysql_fetch_array($resultFind);

$arr[$j]['id'] = $row['id'];

$arr[$j]['mac_address']=$row['mac_address'];

$arr[$j]['wifi_name']=$row['wifi_name'];

$arr[$j]['lat']=$row['gps_lat'];

$arr[$j]['lon']=$row['gps_lon'];

$arr[$j]['location_name']=$row['location_name'];

$arr[$j]['wifi_adds']=$row['wifi_adds'];

$arr[$j]['area']=$row['area'];

$arr[$j]['location_type']=$row['location_type'];

$arr[$j]['ap_free']=$row['ap_free'];

$arr[$j]['category']=$row['category'];

$arr[$j]['password']=$row['password'];

$arr[$j]['capabilities']=$row['capabilities'];

$arr[$j]['user_score']=$row['user_score'];

$arr[$j]['NW_score']=$row['NW_score'];

$j++;

}

//print_r($arr);\

echo json_encode($arr);

?>

还有一点需要注意,就是如果你的终端上的操作系统是android4.0以上的,要添加上那一段代码,上一篇《Android通过json向MySQL中读写数据的方法详解【写入篇】》有写,这里略过

如此一来,可以从MySql中成功地将数据读取下来

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作json格式数据技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

本文标题: Android通过json向MySQL中读写数据的方法详解【读取篇】

本文地址: http://www.cppcns.com/ruanjian/android/155302.html

android json mysql_Android通过json向MySQL中读写数据的方法详解【读取篇】相关推荐

  1. android json mysql_Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Jav ...

  2. MySQL中ESCAPE关键字的用法详解

    MySQL中ESCAPE关键字的用法详解 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 2. escape验证 MySQL中ESCAPE关键字的用法详解 1. mysql转义概述 ...

  3. webconfig的解决方案怎么添加_解决在Web.config或App.config中添加自定义配置的方法详解...

    文档从网络中收集,已重新整理排版 .word 版本可编辑 . 欢迎下载支持 . 1 word 版本可编辑 . 欢迎下载支持 . 解决在 Web.config 或 App.config 中添 加自定义配 ...

  4. java中迭代器要导包吗_java 中迭代器的使用方法详解

    java 中迭代器的使用方法详解 前言: 迭代器模式将一个集合给封装起来,主要是为用户提供了一种遍历其内部元素的方式.迭代器模式有两个优点:①提供给用户一个遍历的方式,而没有暴露其内部实现细节:②把元 ...

  5. php中this的使用技巧,JavaScript中this关键字使用方法详解

    JavaScript中this关键字使用方法详解 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都提供了这个关键字,虽然在开始学习的时候觉得比较难,但只要理解了 ...

  6. vue缓存服务器文件到本地,vue中,在本地缓存中读写数据的方法

    1.安装good-storage插件 cnpm i good-storage --save 2.读/写的方法 common/js/cache.js: import storage from 'good ...

  7. android 6.0 存储卡,Android 6.0区别U盘和SD卡设备的方法详解

    如下所示: public static boolean isSdcardExists(Context context) { StorageManager storageManager = Storag ...

  8. 在HTML文档中使用JavaScript的方法详解

    在HTML文档中使用JavaScript的方法详解 本文详细介绍,在HTML文档(也称为HTML页面或网页)中使用JavaScript脚本代码的多种方法. 假设要用JS生成字符☆直角三角形 实现Jav ...

  9. 无刷新跳转—关于history中pushState和replaceState方法详解

    〝 古人学问遗无力,少壮功夫老始成 〞 **关于history中pushState和replaceState方法详解,**常码字不易,出精品更难,没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫 ...

最新文章

  1. 太牛了!22岁本科生Github上开源的后台管理系统,太实用(附源码)!
  2. CentOS7修改网卡名称为eth格式
  3. Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细
  4. cuda版本的word2vec
  5. mysql忘记密码怎末版_mysql忘记密码怎么办
  6. html5设置data,HTML5自定义data属性
  7. 大数据技术存在局限 经验直觉不可或缺
  8. Spring Boot Actuator [监控与管理]
  9. 企业图纸无纸化,企业图纸安全使用和传输解决方案
  10. There are unfinished transactions remaining解决办法
  11. Client network socket disconnected before secure TLS connection was established
  12. 男女老少皆宜的15种瘦身食物,著名人生保健专家撰写
  13. C#基础教程-c#实例教程,适合初学者
  14. Fuzzing及Sulley简介
  15. 计算机软件添加信任,瑞星杀毒怎么添加信任软件 添加方法介绍
  16. 基于 TCP协议和sqlite3数据库的网络电子词典(个人项目)
  17. 操作系统(第四版)期末复习总结(上)
  18. 生活与管理中的18条实用定律
  19. C语言链表逆序复杂度为o1,C链表反转(时间复杂度O(n))
  20. html、css 教程

热门文章

  1. 微信小程序中用setData修改一个对象的属性值
  2. 《众妙之门——Web用户体验设计与可用性测试》一第2章 在网页设计中通过测量数据优化情感投入2.1 情感应答和行为应答的关系...
  3. Windows bat with adb
  4. iOS自定义的UISwitch按钮
  5. 关于树,各种平衡树查找树的资料合集~~
  6. Windows Phone 开发起步之旅之二 C#中的值类型和引用类型
  7. jquery键盘事件全记录
  8. OFBiz + Opentaps 目录管理 十三. 配置产品搜索
  9. php中对象怎么访问i属性_PHP--序列化与反序列化详解
  10. 采购寄售业务的系统实现