json数据解析

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这个方法是参考

/networking-database-problems-f29/connecting-to-mysql-database-t50063.html

国外老外的一些经验所得。这里我总结一下要点:

1、需要一个mysql数据库,这个怎么搞出来,大家觉得有问题先学学mysql再回来接着看。

2、需要一个php操作mysql数据库的脚本,上传到服务器地址

3、需要修改Android的manifest文件,入网许可!!

一、首先我们假如已经把MYSQL数据库建立好了,写一个PHP操作文件上传到服务器访问地址

[php]view plaincopyprint?

1

2 mysql_connect("localhost","yourName","yourPassword");

3 mysql_select_db("yourDB");

4 $q=mysql_query("SELECT * FROM user_info WHERE uName

='".$_REQUEST['name']."'");

5while($e=mysql_fetch_assoc($q))

6 $output[]=$e;

7 print(json_encode($output));

8 mysql_close();

9?>

稍微解析一下上面PHP内容,

[php]view plaincopyprint?

10$q=mysql_query("SELECT * FROM user_info WHERE uName ='".$_REQUEST['name']."'"); 这句当中

[php]view plaincopyprint?

11.$_REQUEST['name'].

就表示要从android里面输入到这里的一个键值对的值,id为name,下面我们

写Android程序会再说明一下。

[php]view plaincopyprint?

12json_encode($output));

这个就是把输出的结果转成json的数据格式返回给Android进行json数据解析。

二、准备写Android关键的实现连接Mysql方法

[java]view plaincopyprint?

13//连接MYSQL数据库方法

14 //并且返回结果

15private String checkServerDataByName()

16 {

17 //数据流

18 InputStream is = null;

19

20 //返回值

21 String result = "";

22 String returnResult ="";

23 //这里增加要传送到PHP进行MYSQL操作的名称条件

24 ArrayList nameValuePair = new

ArrayList();

25 nameValuePair.add(new BasicNameValuePair("name", mInputName));

26

27 //Http post

28try {

29 /*创建一个HttpClient的一个对象*/

30 HttpClient httpClient = new DefaultHttpClient();

31 /*创建一个HttpPost的对象*/

32 //MYSQL_0代表我上传的上面写得PHP 文件服务器地址

33 HttpPost httpPost = new HttpPost(MYSQL_0);

34 /*设置请求的数据*/

35 httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));

36 /*创建HttpResponse对象,处理请求*/

37 HttpResponse response = httpClient.execute(httpPost);

38 /*获取这次回应的消息实体,获取返回的实体消息*/

39 HttpEntity entity = response.getEntity();

40 /*把这些消息指向对象实体的数据流*/

41 is = entity.getContent();

42 } catch (Exception e) {

43 // TODO Auto-generated catch block

44 Log.e("log_tag", "Error in http connection "+e.toString());

45 }

46

47 //接下来对上面能够获取返回的IS数据流进行相关处理

48 //这里不懂的可以先看看JAVA里面的IO

49try {

50 BufferedReader br = new BufferedReader(new InputStreamReader(is,

51 "iso-8859-1"), 8);

52 StringBuilder sb = new StringBuilder();

53 String line = null;

54while ((line = br.readLine()) != null) {

55 sb.append(line + "\n");

56 }

57 is.close(); //读完记得一定要关闭,其实这个应该放到finally块里面,这里偷懒了

58 result = sb.toString();

59 } catch (Exception e) {

60 // TODO: handle exception

61 Log.e("log_tag", "Error converting result "+e.toString());

相关文档
最新文档