登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 799447|回复: 35

android下支持json的远程访问

  [复制链接]

206

主题

1622

帖子

2721

安币

Android大神

Rank: 6Rank: 6

发表于 2011-11-8 19:44:48 | 显示全部楼层 |阅读模式

android和服务器端可以很方便的建立http连接,见android编写访问http的代码。问题是这个http连接上传递什么,更确切的说,服务器端通过http连接向android这个客户端系统传递什么格式的数据。

比较简单的方式是传递文本数据,不论是纯文本还是xml格式数据,然后在android系统中自行编写解析文本的代码。

还有一种方式是传递json格式数据。有关json格式数据的官方介绍:

http://json.org/json-zh.html

android提供了对json的最基本的支持。还是在实现android activity之间的跳转示例的NextActivity基础上做修改,见:

  1. package com.easymorse;

  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;

  4. import org.apache.http.HttpResponse;
  5. import org.apache.http.client.HttpClient;
  6. import org.apache.http.client.methods.HttpGet;
  7. import org.apache.http.impl.client.DefaultHttpClient;
  8. import org.json.JSONObject;

  9. import android.app.Activity;
  10. import android.os.Bundle;
  11. import android.util.Log;

  12. public class NextActivity extends Activity {
  13.     @Override
  14.     protected void onCreate(Bundle savedInstanceState) {
  15.         super.onCreate(savedInstanceState);
  16.         this.setContentView(R.layout.next_activity);

  17.         HttpClient client = new DefaultHttpClient();
  18.         StringBuilder builder = new StringBuilder();

  19.         HttpGet get = new HttpGet(
  20.                 “http://marshal.easymorse.com/wp-content/uploads/2009/10/json_demo3.txt”);
  21.         try {
  22.             HttpResponse response = client.execute(get);
  23.             BufferedReader reader = new BufferedReader(new InputStreamReader(
  24.                     response.getEntity().getContent()));
  25.             for (String s = reader.readLine(); s != null; s = reader.readLine()) {
  26.                 builder.append(s);
  27.             }

  28.             JSONObject jsonObject = new JSONObject(builder.toString());
  29.             Log.v(“response”, jsonObject.getString(“product_name”));
  30.             Log.v(“response”, jsonObject.getString(“create_time”));
  31.         } catch (Exception e) {
  32.             e.printStackTrace();
  33.         }
  34.     }
  35. }
复制代码
可以下载本文中使用的一个简单的示例:[Download not found]以下总结一下使用json作为android系统响应(response)格式的优点和缺点。json可以用于基本类型的数据:
  • 数字:整数、实数或者浮点数
  • 字符串:unicode
  • 布尔型
  • 数组
  • 对象:实际上是键值对的集合
优点:
  • 比xml格式简单;
  • json是更好的数据交换格式;xml是更好的文档交换格式;
  • json更易于机器阅读,使用简单的客户端库或者自身支持(javascript);
  • json可被浏览器客户端支持;
  • 可支持各种通用的数据结构,记录、列表、树;
  • 21种语言支持可解析和生成json格式
缺点:
  • 没有xml中类似CDATA的特性,不适合传递声音和图片等二进制数据;
  • json不具备显示能力,和xml相比;
  • json不可扩展,和xml相比。


2

主题

187

帖子

17

安币

初级码农

IT男

Rank: 1

QQ达人

QQ
发表于 2011-11-14 18:44:40 | 显示全部楼层
come here !
努力!!!

0

主题

25

帖子

62

安币

程序猿

Rank: 2

发表于 2011-11-16 11:33:42 | 显示全部楼层
{:soso_e100:}不错。。

0

主题

12

帖子

17

安币

初级码农

Rank: 1

发表于 2011-11-19 15:39:13 | 显示全部楼层
各有各的优缺点吧

1

主题

81

帖子

25

安币

程序猿

Rank: 2

发表于 2012-1-7 21:11:10 | 显示全部楼层
学习下再说

3

主题

28

帖子

71

安币

初级码农

Rank: 1

发表于 2012-1-16 22:28:52 | 显示全部楼层
学习 学习

0

主题

381

帖子

246

安币

攻城狮

Rank: 3Rank: 3

QQ达人

QQ
发表于 2012-1-17 04:56:36 | 显示全部楼层
kjjkjkjkjkjkjkjkjk

主题

帖子

安币

游客

发表于 2012-3-21 13:13:51 | 显示全部楼层
您好:请问修改后的在next—Activity.xml和String.xml需要怎么修改才能运行呢?谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表