Android从服务端获取json解析显示在客户端上面

Android从服务端获取json解析显示在客户端上面
Android从服务端获取json解析显示在客户端上面

Android从服务端获取json解析显示在客户端上面

首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Json数据的体积更加小,传输效率高,易解析,不过可读性不高;

因为这次要从服务器端得到Json数据,并且通过解析之后把解析后的数据显示在Android客户端中,首先部署服务器端代码(直接使用Jsp/Servlet):

构造的Json数据如下:

[{"name":"张三","address":"北京","age":20},{"name":"李四","address":"上海","age":30}, {"name":"王五","address":"深圳","age":35}]

[一]服务器端(Person.java省略):

①:数据构造JsonService.java

public class JsonService {

public static List getListPerson() {

List mLists = new ArrayList();

mLists.add(new Person("张三", "北京", 20));

mLists.add(new Person("李四", "上海", 30));

mLists.add(new Person("王五", "深圳", 35));

return mLists;

}

②:Servlet的代码(包括构造Json数据,没有使用Json数据转换方法)JsonServlet.java

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html");

response.setCharacterEncoding("UTF-8");

PrintWriter out = response.getWriter();

List persons = JsonService.getListPerson();

StringBuffer sb = new StringBuffer();

sb.append('[');

for (Person person : persons) {

sb.append('{').append("\"name\":").append("\""+person.getName()+"\"").append(", "); sb.append("\"address\":").append("\""+person.getAddress()+" \"").append(",");

sb.append("\"age\":").append(person.getAge());

sb.append('}').append(",");

}

sb.deleteCharAt(sb.length() - 1);

sb.append(']');

out.write(new String(sb));

out.flush();

out.close();

}

③:部署到Tomact 浏览器输入http://localhost/JsonWeb/JsonServlet直接访问结果如下:

[{"name":"张三","address":"北京","age":20},{"name":"李四","address":"上海","age":30}, {"name":"王五","address":"深圳","age":35}]

至此服务器端代码编码完成,下面进行客户端代码编写; (二)客户端(Person类,和展示数据的布局文件因为简单省去) ①:获取服务器端的Json数据并且解析的工具类JsonParse.java 必要的需要导入的包省去

public class JsonParse {

/**

* 解析Json数据

*

* @param urlPath

* @return mlists

* @throws Exception

*/

public static List getListPerson(String urlPath) throws Exception {

List mlists = new ArrayList();

byte[] data = readParse(urlPath);

JSONArray array = new JSONArray(new String(data));

for (int i = 0; i < array.length(); i++) {

JSONObject item = array.getJSONObject(i);

String name = item.getString("name");

String address = item.getString("address");

int age = item.getInt("age");

mlists.add(new Person(name, address, age));

}

return mlists;

}

/**

* 从指定的url中获取字节数组

*

* @param urlPath

* @return 字节数组

* @throws Exception

*/

public static byte[] readParse(String urlPath) throws Exception { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] data = new byte[1024];

int len = 0;

URL url = new URL(urlPath);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

InputStream inStream = conn.getInputStream();

while ((len = inStream.read(data)) != -1) {

outStream.write(data, 0, len);

}

inStream.close();

return outStream.toByteArray();

}

}

②:主Activity类

public class MainActivity extends Activity {

private Button mButton;

private ListView mListView;

//使用IP不能使用localhost或者127.0.0.1,因为android模拟器默认绑定这个IP,这里应该访问局域网IP

private static final String urlPath = "http://10.16.31.207/JsonWeb/JsonServlet";

private static final String TAG = "MainActivity";

private List persons;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(https://www.360docs.net/doc/fe16716477.html,yout.main);

mButton = (Button) findViewById(R.id.button1);

mListView = (ListView) findViewById(R.id.listView1);

mButton.setOnClickListener(new MyOnClickListener());

}

private class MyOnClickListener implements OnClickListener {

@Override

public void onClick(View v) {

try {

// 得到Json解析成功之后数据

persons = JsonParse.getListPerson(urlPath);

List> data = new ArrayList>(); for (int i = 0; i < persons.size(); i++) {

HashMap map = new HashMap();

map.put("name", persons.get(i).getName());

map.put("address", persons.get(i).getAddress());

map.put("age", persons.get(i).getAge());

data.add(map);

}

//初始化适配器,并且绑定数据

SimpleAdapter _Adapter = new SimpleAdapter(MainActivity.this, data, https://www.360docs.net/doc/fe16716477.html,yout.listview_item, new String[] { "name", "address", "age" }, new int[] { R.id.textView1,

R.id.textView2, R.id.textView3 });

mListView.setAdapter(_Adapter);

} catch (Exception e) {

Toast.makeText(MainActivity.this, "解析失败", 2000).show(); Log.i(TAG, e.toString());

}

}

}

至此服务器端和客户端编码介绍,运行a n d r o i d应用结果截图:

Android客户端缓存方案

概述: 客户端缓存机制是android应用开发中非常重要的一项工作,使用缓存机制不仅仅可以为用户节省3G流量,同时在用户体验方面也是非常好的选择. 缓存机制分为两部分,一部分是文字缓存,另一部分是多媒体文件缓存. 缓存文件保存策略: 1.文字缓存: 文字缓存应该分为两种,一种是更新比较频繁的区域,一种是更新不频繁的区域. 根据两者的更新频率区分它们的过期时间. 更新比较频繁的区域,它的缓存过期时间应该为应用程序内(即应用程序从打开到关闭的这段时间).这种情况会有专门的缓存文件夹存放该类缓存文件,以及专门的缓存数据库表存放信息.每次应用程序启动的时候都会先将该类数据清空. 另一种很少更新的区域,它的缓存不设置过期时间,而是提供一个按钮或者Menu可以让用户选择手动更新(如我的好友列表,我的订阅,我的分享.等等….) 具体的文字缓存划分,详见附录1. (1)通常情况下,我们与服务器交互都是采用JSON格式获取数据的,获取的JSON数 据仅仅是一段字符串,我们可以考虑将这些字符串使用文件流写入一个TXT,保存到 SD卡中,在数据库添加该数据的记录.添加数据库记录时,提供两个关键字段,一个是 请求的URL,另一个则是本地保存后的文件地址.日后每次向服务器发起请求之前都会根据URL在数据库中检索. 该方法好处:降低系统数据库数据量,不会出现数据库满了的现象. 缺点:IO操作频繁,有时代码书写有误会造成内存泄露等状况. (2)将JSON数据解析后装入List对象中,然后遍历List,将数据统统写入相应的 数据库表结构中,以后每次向服务器发起请求之前可以先在数据库中检索,如果有直接返回. 该方法好处:如果本地存在文字缓存,那么读取缓存速度快. 缺点:增加数据库数据量. 2.多媒体文件缓存 (1)图片缓存 图片的缓存可以根据当前日期,时间为名字缓存到SD卡中的指定图片缓存目录, 同时数据库中做相应记录,记录办法可以采用两个关键字段控制,一个字段是该图片 的URL地址,另一个字段是该图片的本机地址.取图片时根据URL在数据中检索, 如果没有则连接服务器下载,下载之后再服务器中作出相应记录. (2)视频文件缓存 考虑到视频文件就是动画片,每一集的大小应该超过20MB,如果边播放边下载的话 用户的3G流量负担是很大的,而且用户看完一集动画片,基本上不会再去看第二遍. 从这个状况来看,建议不要对视频文件进行下载缓存.另外也能降低程序员的编码负 担.

Android利用Gson实现对象和Json数据的相互转换

Android利用Gson实现对象和Json数据的相互转换 MainActitity如下: package cc.test; import android.app.Activity; import android.os.Bundle; /** * Demo描述: * 利用Gson实现对象和Json数据的相互转换 * * Demo描述: * 通过一个网络请求,获取JSON数据 * * 注意: * 1 网络请求的参数是JSON格式的数据 * 2 请求结果返回的亦是JSON格式的数据 * */ public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.360docs.net/doc/fe16716477.html,yout.main); init(); } private void init(){ new Thread(){ public void run(){ GetJsonDataByPost httpJsonPost=new GetJsonDataByPost(); String[] pathArray=httpJsonPost.getPathArray("dev0003"); for(int i=0;i

Android客户端与服务器数据交互流程

Android客户端与服务器数据交互流程 一个门户网站的制作的流程:首先,由网页设计师只做网页设计,即画出来网站在浏览器中显示的样子,然后由前端人员编写 Html+CSS+JS来实现网站的动态效果,比如说导航栏的下拉显示,然后Ajax的局部信息更新等,然后通过后台程序如JSP,PHP, .NET等语言将数据库中的信息与前台页面相结合,这样,一个站就这样被建好了。而Android客户端,也是有UI设计师,UI前端,程序构成的,同样程序这边的话,最近Html5+CSS3的火热开启,很多公司也需要html5+css3进行Android程序的开发了。呜呜,抢我的饭碗。虽然说哥也是懂html+css的。嘿嘿,这样解释的话,可能大家不清楚,其实木有必要弄清楚网站的建站过程,这里只是给大家普及一下知识,没必要弄清楚。 基础知识:我们需要知道,Http协议是基于TCP协议的,而TCP协议是一种有连接,可靠的传输协议,如果丢失的话,会重传。所以这样的话,就不会有数据的丢失了。而Http协议有三种方法,Get,Post,Head 方法,但是用的多的只有Get和Post方法,Get方法是将请求参数放在请求头中,所以请求的参数在URL中可见,而Post方法是将请求参数放在数据部分,所以在URL中不可见,Post相对来说保密,所以在提交重要信息的时候,用的都是HttpPost方法来实现的. 而在B/S模式中,B代表浏览器,S代表服务器,在浏览器和服务器的通信之中,因为B/S之间不会一直保持连接,所以才会加入Cookie 机制,来辨认所操作的对象。用户浏览网页的操作如下:当用户点击

一个连接或者一个按钮的时候,浏览器通过发送一个请求给服务器,然后由服务器接收该请求,然后解析到用户请求的是哪些内容,然后查找到相关资源,再将数据返回给浏览器,由浏览器解析数据,然后显示给用户看到用户所需要看到的页面。所以,Android和B/S模式差不多,其实也就是发送请求,接收数据,然后解析数据,显示到手机上的过程,没什么太大的区别,谁让咱用的是互联网,用的是TCP/IP 协议呢,是吧。要理解是:所有的操作都是向服务器请求数据的过程。 hp文件,然后浏览器会将php文件解析成为html然后显示在浏览器上显示。

[Android开发] Json解析工具类,一个类搞定Json的解析

[Android开发] Json解析工具类,一个 类搞定Json的解析 一、简介 利用递归的方式反射解析到bean里面 二、详细代码 1、Json格式 例如服务器指定规定json格式为: { "code": "……" , // 返回代号,预留字段,默认返回null "type":"ERROR", // 返回类型,表示操作是成功或失败 "desc":"……", // 返回描述,描述性文字,主要保存用于弹窗显示的文字 "action":"SHOW", //返回操作,该操作值提供给终端使用,用于决定当前收到返回后的操作 "data": "……" // 返回数据,根据请求上传的参数,返回对应的数据,或返回null } 对应的数据在data里面,data里面的key对应一个bean,例如一个列表数据: { "desc":"查询成功", "data":{ "diseaseList":[ { "xmlName":"精神病评估", "xmlId":"1066", "category":"symptom" }, { "xmlName":"对学习困难和认知延迟的评估", "xmlId":"884", "category":"symptom" }, { "xmlName":"疲乏的评估", "xmlId":"571", "category":"symptom"

}, { "xmlName":"痴呆的评估", "xmlId":"242", "category":"symptom" }, { "xmlName":"非故意性体重减轻评估", "xmlId":"548", "category":"symptom" } ] }, "action":null, "code":"", "type":"SUCCESS" } 2、定义数据Bean类 上面的list的bean定义为DiseaseList.Java public class DiseaseList { /** * xmlName : 分裂情感性障碍 * xmlId : 1199 * category : disease */ private String xmlName; //症状名字 private String xmlId; //症状名字 private String category; //分类的英文名 private String letter = ""; //字母,转为拼音后在这里添加 public String getXmlName() { return xmlName; } public void setXmlName(String xmlName) { this.xmlName = xmlName; }

Android客户端与服务器数据交互流程

A n d r o i d客户端与服务器数 据交互流程 标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-

Android客户端与服务器数据交互流程 一个门户网站的制作的流程:首先,由网页设计师只做网页设计,即画出来网站在浏览器中显示的样子,然后由前端人员编写 Html+CSS+JS来实现网站的动态效果,比如说导航栏的下拉显示,然后Ajax的局部信息更新等,然后通过后台程序如JSP,PHP, .NET等语言将数据库中的信息与前台页面相结合,这样,一个站就这样被建好了。而Android客户端,也是有UI设计师,UI前端,程序构成的,同样程序这边的话,最近Html5+CSS3的火热开启,很多公司也需要html5+css3进行Android程序的开发了。呜呜,抢我的饭碗。虽然说哥也是懂html+css的。嘿嘿,这样解释的话,可能大家不清楚,其实木有必要弄清楚网站的建站过程,这里只是给大家普及一下知识,没必要弄清楚。 基础知识:我们需要知道,Http协议是基于TCP协议的,而TCP协议是一种有连接,可靠的传输协议,如果丢失的话,会重传。所以这样的话,就不会有数据的丢失了。而Http协议有三种方法,Get,Post,Head方法,但是用的多的只有Get和Post方法,Get方法是将请求参数放在请求头中,所以请求的参数在URL中可见,而Post方法是将请求参数放在数据部分,所以在URL中不可见,Post 相对来说保密,所以在提交重要信息的时候,用的都是HttpPost方法来实现的. 而在B/S模式中,B代表浏览器,S代表服务器,在浏览器和服务器的通信之中,因为B/S之间不会一直保持连接,所以才会加入

Android中JSON详细总结

Android中JSON详细总结 1、JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其 提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。– https://www.360docs.net/doc/fe16716477.html, 2、JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list、 Hash table、Disctionary和Associative array。在Android平台中同时存在另外一个类 "Bundle",某种程度上具有相似的行为。 (2) Array(有序的):一组有序的数据列表。 对象 对象是一个无序的Name/Value Pairs集合。{name:value , name:value , name:value .... } 例子:{ "name":"小猪","age":20 } Array Array是值(value)的有序集合。[ value , value , value ...... ] 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。 字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。例如:\ + " \ / b f n r t u 进行转义。

移动客户端Android开发规范

移动客户端开发规范之Android 一、编码规范 (1)常量命名:只能包含字母和_,字母全部大写,单词之间用_隔开。 单词名称要能体现变量的逻辑说明。 (2)变量命名:变量类型简称+变量逻辑名称 变量类型:String=str;Integer=int;Boolean=bool; (3)控件命名:控件类型简称+逻辑名称 控件类型:LayoutView:lv RelativeView:rv Button:btn TextView:tv ImageView:iv EditText:et …………… (4)Activity命名及对应的页面命名 Activity命令:逻辑名称(首字母大写)+Activity 页面命令:逻辑名称(小写,跟Activity的逻辑名称同名,单词间用_分隔)+.xml (5)Strings.xml中的id命名 对于针对特定Actvity命名:activity名称_逻辑名称(小写) 其它命名:strings_逻辑名称(小写) (6)包的命名 规则:com.al.ec+.应用程序名称+.目录分类(全部小写)

二、版本控制 (1)采用代码管理工具,进行代码的管理。如:SVN 代码在完成一个大版本的时候,需对此大版本打标签,以方便下次可以快速取出代码。 代码提示,需注明开发或修改了什么内容。 (2)程序的文件头注释按以下格式 /** * 亚信联创电信EC产品部 * * @author翁德辉 * @date 2012-04-05 * @Description: 基类,用于集合页面的常用操作 * @version V1.0 */ 如果有修改需在其下面写明修改日期,修改人,修改内容。 (3)函数或过程的注释按以下格式 /** * 函数或过程说明 * * @param参数名:参数说明 */ (4)对于变量需要在变量上面对变量进行注解。 // 弹出选号 private AlertDialog dialogNumber = null; (5)在eclipse进行开发当中,可以使用Ctrl+Shit+F对代码按格式排版 可以使用CTRL+SHIFT+O对不需要的引用类进行去除。

android程序经典架构

Android 程序框架设计 1、主要说明 框架说明: 1 基于HTTP 协议进行通信 2 利用json 格式传输数据。 客户端以POST 方式用UTF-8编码提交网络请求,主要模块有通用framework,view 视图,业务逻辑(系统调度)模块,本地数据处理模块,http 模块,工具类。http 请求解析,传输到业务处理模块,然后本地处理数据模块进行文件保存,若展示则 通过业务处理模块,最终在view 视图上显示。 2、设计细项 2.1 共通类的设计 概念完整性: 1 2 3 4 5 - 开发过程中,需求、设计、编码的一致性 - 整个程序具有统一的风格,比如对话框样式,按钮风格,色调等UI 元素 - 整个程序具体统一的结构,比如不同模块访问网络,它们的调用方式一致,例如异步访问都用回调方式通知结果,相同的功能应该提取成共通模块。 - 开发人员能很好的执行需求人员和设计人员的意图。 - 有完整的文档,需求文档,设计文档,测试文档,处理流程的文档等。 2.1.1 Widget 设计 尽量在style 文件中定义样式。 TextView EditText Button Title bar Tool bar … ### 为什么要提供这些共通控件? ### 统一字体大小,如App 字体不随系统字体变化而变化 统一UI 式样,如Button , EditText 具有相同的背景等 复用代码

2.1.2 Adapter Items 根据式样,提取需要在AdapterView 中显示的Item 简单的复合布局 自绘制,从而提高滑动性能 - ListView 中放Gallery 时,提高上下滑动性能 - 尽量优化绘制 ### 数据驱动 ### Adapter Items 提供核心的方法 - setData(Object data) - getData(); Adapter#getView 实现更加简单 - 实现简单 - 不会因为UI 变化而变化 下面代码示例了Adapter#getView()方法的实现,它返回BookView ,BookView 提供方法来接收数据,至于BookView 的显示,则根据设置的数据来显示,这就是数据驱动UI 。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @Override public View getView(int position, View convertView, ViewGroup parent) { if (null == convertView) { convertView = new BookView(getContext()); convertView.setLayoutParameter(new https://www.360docs.net/doc/fe16716477.html,youtParameter(150, 150)); } Book book = m_bookList.get(position); BookView bookView = (BookView)convertView; bookView.setBook(book); return convertView; } 2.1.3 Dialog 扩展于Dialog 类 提供Dialog 关闭的事件 Dialog 的高度随内容的变化而变化 可以设置按钮的文字,可见性,字体等方法

一步步教你为网站开发Android客户端

一步步教你为网站开发Android客户端 注:本文来自友盟-安卓巴士教程大赛第一名获奖作品,作者安卓巴士的ID为liupeinye。推荐给所有刚刚开始接触Android开发的朋友们! 本文面向Android初级开发者,有一定的Java和Android知识即可。 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView 背景介绍:客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。而android 系统上的90%客户端软件都有一个共性,就是为了改善网页在android系统上体验不佳而生,最具有影响力的软件有:新浪微博、人人网、淘宝等,这类软件最突出的特点就是,先有网站再有软件。由于网络技术发展的多样性,手机浏览器往往无法跟随它的步伐,为改善用户体验,网站客户端软件印运而生。 以下内容100%原创,并在安卓巴士论坛首发,如需转载,请注明作者和出处。谢谢合作。 开发Android网站客户端通常有两种方法:第一种,通过服务端的开放平台,调用提供的API接口来开发,比如说open sina;第二种,服务端没有提供任何接口,你也没有服务端任何数据库访问权限,就是一个纯纯粹粹的网站,要你做客户端。今天,我要和大家分享的正是第二种情况。 这是一个简单的示意图,告诉我们,数据是由网页从数据库中取出,我们要为这个系统做客户端,我们就应该这样去改造它。

通过这样间接的方法来访问数据库,只要网页能看到的内容,我们的客户端都能获取到,而UI是由你自行制作,就可以使使用体验上一个台阶。 既然网页是我们的数据枢纽,我们就从网页分析着手。 该教程来自本人项目-掌上民大-真实经验,所以用项目中的”掌上图书馆”板块来示范。 该项目任务为中南民族大学图书馆图书查询功能制作客户端。 首先打开该网址https://www.360docs.net/doc/fe16716477.html,/,我们会看到主界面

Android手机客户端和服务器交互开发实例

本文介绍了如何使用Android搭建客户端,实现手机和服务器的交互。让我们了解如何采用SSH框架,把服务器端的信息用JSON的形式发送到手机端。 AD:笔者以前是学的Java EE,由于项目需要要开发Android,所以临时补了一个多星期,主要是手机端和服务器端交互,双向开发的。 首先在服务器端,我采用的是SSH框架,struts 2集合了JSON插件,服务器和客户端的信息交互采用的JSON来传输,由于在服务器端用了Struts 2,所以我就用装了一个JSON插件。这样,很轻易的就把服务器端的信息用JSON的形式发送到了手机端。以下是代码: 首先,在服务器端搭建好SSH框架,具体细节就不在陈述。struts.xml配置如下: 1. 2. 3.result 4. 5. 6. 7. 8. 9. result 10. 11. 手机端的代码如下: 首先,手机端有一个缓存类,主要用于缓存一些手机端需要访问的数据,这样的好处是可以达达节省手机和服务器的交互,用单例实现的: 1.packagecom.jclick.cache; 2. https://www.360docs.net/doc/fe16716477.html,er; 4. 5.publicclassCache{ 6. 7.privateUserUser; 8. 9.privateCache(){ 10. 11.} 12./**构造单例*/ 13.Private static class CacheHolder{ 14.Private static final CacheINSTANCE=newCache(); 15.} 16.Public Cache getInstance(){ 17.returnCacheHolder.INSTANCE; 18.} 19.publicUsergetUser(){

androidjson解析及简单例子(转载).

JSON 的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持,从而可以在不同平台间进行数据交换。 JSON 采用兼容性很高的文本格式,同时也具备类似于 C 语言体系的行为。– https://www.360docs.net/doc/fe16716477.html, JSON Vs XML 1.JSON 和 XML 的数据可读性基本相同 2.JSON 和 XML 同样拥有丰富的解析手段 3.JSON 相对于 XML 来讲,数据的体积小 4.JSON 与 JavaScript 的交互更加方便 5.JSON 对数据的描述性比 XML 较差 6.JSON 的速度要远远快于 XML android2.3提供的 json 解析类 android 的 json 解析部分都在包 org.json 下,主要有以下几个类: JSONObject :可以看作是一个 json 对象 , 这是系统中有关 JSON 定义的基本单元, 其包含一对儿 (Key/Value数值。它对外部 (External:应用 toString(方法输出的数值调用的响应体现为一个标准的字符串(例如:{"JSON": "Hello, World"},最外被大括号包裹,其中的 Key 和 Value 被冒号 ":"分隔。其对于内部 (Internal行为的操作格式略微,例如:初始化一个 JSONObject 实例,引用内部的 put(方法添加数值:new JSONObject(.put("JSON", "Hello, World!", 在 Key 和 Value 之间是以逗号 "," 分隔。Value 的类型包括:Boolean 、 JSONArray 、 JSONObject 、 Number 、 String 或者默认值 JSONObject.NULL object 。

Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析

Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析 Android网络开发中如何使用JSON进行网络通信---Android JSON数据通讯方法解析 在开发客户端与服务端的应用当中,数据交换接口通常都是通过XML格式来进行数据交换的。近年来,随着AJAX技术的兴起,JSON作为一种轻量级的数据交换格式,以其易于阅读和编写的优点,也越来越多的被使用到各个项目中。在OPhone SDK中,也提供了JSON 的类库方便对JSON格式的数据进行处理。本文将快速讲解JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行JSON 格式数据的处理。 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,这些特性使JSON成为理想的数据交换格式。 和XML 一样,JSON 也是基于纯文本的数据格式。由于JSON 天生是为JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用JSON 传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object 对象。 String,Number 和Boolean 用JSON 表示非常简单。例如,用JSON 表示一个简单的字符串“ abc ”,其格式为:"abc"。 除了字符",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他Unicode 字符可以直接输出。下图是一个String 的完整表示结构: 图1.String的完整表示结构 一个Number 可以根据整型或浮点数表示如下: 图2.Number 的表示结构 这与绝大多数编程语言的表示方法一致,例如: 12345(整数) -3.9e10(浮点数)

android客户端在多个界面切换时保持socket的链接

android客户端在多个界面切换时保持socket的链接 研究一个socket在多个界面切换时保持链接的问题,现在我提供客户端的源码给有需要的人参考。 1、ApplicationUtil类: import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import https://www.360docs.net/doc/fe16716477.html,.Socket; import https://www.360docs.net/doc/fe16716477.html,.UnknownHostException; import android.app.Application; public class ApplicationUtil extends Application{ private Socket socket; private DataOutputStream out = null; private DataInputStream in = null; public void init() throws IOException, Exception{ this.socket = new Socket("192.168.1.104",10202); this.out = new DataOutputStream(socket.getOutputStream()); this.in = new DataInputStream(socket.getInputStream()); } public Socket getSocket() { return socket; } public void setSocket(Socket socket) { this.socket = socket; } public DataOutputStream getOut() { return out; } public void setOut(DataOutputStream out) { this.out = out; }

Android移动终端开发大作业

Android移动终端开发大作业 一、作业要求 ●1人一组,独立完成。 ●按照个人兴趣方向,自选题目,完成系统。 ●在规定的时间里完成系统主体功能,程序比较稳定的运行。 ●手机界面要求简洁、美观,功能不能过于简单,应具备一定的实用性。 ●至少要3个Activity以上。 ●必须使用自定义Listview,要使用Sqlite数据库或API调用与数据解析(API 可使用聚合数据(https://https://www.360docs.net/doc/fe16716477.html,/)、API Store(https://www.360docs.net/doc/fe16716477.html,/)或apix(https://www.360docs.net/doc/fe16716477.html,/)提供的API,如有能力也可自行开发服务器端)。 ●欢迎好的创意作品、实用作品,评分时会适当加分。 ●需提交设计报告,设计报告格式见附件,按附件顺序装订(包括评分表) ●大作业成绩从工作量、功能点、创新性、实用性、报告的字数、质量及规范 度等方面的成绩构成 二、注意事项 ●压缩包内作业内容包括两部分: ①作业项目文件夹,项目必须能够调试通过,android平台选择选择2.2或是2.3.3。 ②作业设计说明,word文件。 ●可以借鉴网络上的代码,但不可全部照搬。 不许相互抄袭,一旦发现成绩为零。 Android平台移动应用开发 大作业 基于Android的新闻浏览软件的设计与 题目 实现

学院信息工程学院 专业信息工程 班级信息1303 姓名杏允升 指导教师秦珀石 2015 年12 月10 日 一、 ................................................................................................................. 错误!未定义书签。 二、概述 (3) 三、关键技术 (4) 四、概要设计 (8) 五、系统实现 (9) 六、心得体会.................................................................................................. 错误!未定义书签。

Android手机客户端与Web服务器的通信

1.Android手机访问Web服务器 大多数中间件技术开发人员熟悉如何用计算机浏览器访问互联网,浏览器的主要作用是给互联网的Web服务器提交数据、验证数据和解析显示数据。其工作原理是通过Http协议.提交数据用GET或者POST方法,客户端的数据通过浏览器网页提交给web应用服务器,应用服务器通过Web页面接收各种不同类型数据,将数据通过服务器的Servlet子类Http Servlet对象提交给服务器端处理逻辑.服务器逻辑将接收到的数据按照客户端的要求在Web服务器端进行运算,再将运算的结果返回给客户端浏览器进行解析和显示。这里关键是Web服务器端的Servlet.它是服务器和客户端交互据的服务器端端口,即所有客户端的数据都要通过Servlet提交给Web服务器.所有要返回给客户端的数据都要通过Web服务器端的Servlet响应给客户端。在实际应用的服务器端,创建Servlet的子类对象HttpServlet (HttpServletRequest和 HttpServletResponse),分别用来接收客户端的数据和将数据返回给客户端。现在的问题就在Android手机终端.如何能够把客户的数据通过手机界面提交给Web服务器? Android 手机终端访问Web服务器的技术架构是怎样的?又如何能够在手机终端把web服务器响应的数据按照服务器的不同数据类型恢复原型?这就是下面要解决的问题。 1.1 手机客户端向Web应用服务器发送请求信息 以实际开发的Android手机终端登录功能为案例介绍如何利用Sun公

司提供的 java 数据流和过滤流结合Android提供的API提取Web服务器端不同类型的数据。 1) 首先引用所需要的各种API在Android手机终端开发应用程序时.首先需要利用Google和Sun公司提供的必要类包(API),包括http 通信协议类org.apache.http,*消息类org.apache.http.Message.*数据流类java.io.*android.app.Activity等。 2)定义访问网站的URL 3)创建Android程序界面类创建一个手机界面,需要继承Android提供的Activity,在该类中创建提交给Web服务器的数据的 H ttpPost 对象。覆盖Activity类的方法on—Create(Bundle b),创建事件监听器OnClickListener对象,在其中实现 onClick(View v)方法,再把该事件监听器注册到相应的事件源 loginB utton上。 4)创建HttpPost对象HttpPost对象的主要作用是将Android手机端的数据提交给Web应用服务器,为此Android提供了很好的AP I.这里就利用Android和Sun公司提供的这些类把需要提交给服务器的数据(NameValuePair对象)保存到一个List对象中。 5 )设置数据编码方式Android手机在将准备好的数据发送到Web服务器之前,需要对数据的编码进行规定,这样服务器在接收到这些数据后,就会根据发送过去的文字编码处理和显示。 6 ) 提交HttpPost对象和获取服务器HttpResponse响应数据完成

android使用JSON进行网络数据交换

使用JSON进行网络数据交换 网络编程, 2009-12-18 17:29:44 标签: 在开发客户端与服务端的应用当中,数据交换接口通常都是通过XML格式来进行数据交换的。近年来,随着AJAX技术的兴起,JSON作为一种轻量级的数据交换格式,以其易于阅读和编写的优点,也越来越多的被使用到各个项目中。在Android SDK中,也提供了JSON的类库方便对JSON格式的数据进行处理。本文将快速讲解JSON 格式,并通过代码示例演示如何分别在客户端和服务器端进行JSON 格式数据的处理。 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成,非常适合于服务器与客户端的交互。JSON采用与编程语言无关的文本格式,但是也使用了类C语言的习惯,这些特性使JSON成为理想的数据交换格式。 和XML 一样,JSON 也是基于纯文本的数据格式。由于JSON 天生是为JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用JSON 传输一个简单的String,Number,Boolean,也可以传输一个数组,或者一个复杂的Object 对象。 String,Number 和Boolean 用JSON 表示非常简单。例如,用JSON 表示一个简单的字符串“ abc ”,其格式为:"abc"。 除了字符",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他Unicode 字符可以直接输出。下图是一个String 的完整表示结构:

图1.String的完整表示结构一个Number 可以根据整型或浮点数表示如下:

Android客户端与PC服务器实现Socket通信(wifi)

Android客户端与PC服务器实现Socket通信(wifi) 本文介绍Android终端持续扫描AP信息并发送给服务器端的实现。首先基于TCP协议在Android终端和PC两端之间形成网络虚拟链路。使用ServerSocket创建TCP服务器端,然后在Android客户端使用Socket的构造器来连接服务器。其中Android终端通过WIFI连接和PC处于同一局域网。 1. PC服务器启用ServerSocket 两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。 使用ServerSocket对象监听来自客户端的Socket连接 //创建ServerSocket对象 ServerSocket ss = new ServerSocket(30000); //监听来自客户端的请求 while(true){ Socket s = ss.accept(); … } 如果没有连接,则将一直处于等待状态。 当接收到连接请求后,获取消息到输入流,并保存到文件。 //接收客户端消息 BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); String str; BufferedWriter bw = new BufferedWriter(new FileWriter("D:/ApInfo"+ (i++) +".txt")); while ((str = in.readLine()) != null) { System.out.println(str); bw.write(str); bw.newLine(); } 2. Android终端使用Socket通信 客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。 Socket s = new Socket(“192.168.1.100”, 30000); 这样服务器端的accept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。 详细步骤 采用Handler和TimerTask来定时扫描AP信息并发送给服务器端。 TimerTask规定了到达指定的时间所要进行的任务。 TimerTask task = new TimerTask(){

不错的 [置顶]Android中的JSON详细总结

[置顶]Android中的JSON详细总结 分类:Android数据解析2011-04-04 14:43 701人阅读评论(1) 收藏举报1、JSON(JavaScript Object Notation) 定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。– https://www.360docs.net/doc/fe16716477.html, 2、JSON的结构: (1) Name/Value Pairs(无序的):类似所熟知的Keyed list、Hash table、Disctionary和Associative array。 在Android平台中同时存在另外一个类"Bundle",某种程度上具有相似的行为。 (2) Array(有序的):一组有序的数据列表。 对象 对象是一个无序的Name/Value Pairs集合。{ name:value , name:value , name:value .... } 例子:{ "name":"小猪","age":20 } Array Array是值(value)的有序集合。[ value , value , value ...... ] 值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。 字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。例如:/ + " / / b f n r t u 进行转义。

php与Android客户端通信

Php与Android socket通信 注:php作为服务端, android作为客户端 Php服务端: "; } //绑定到socket端口 if(($ret=socket_bind($sock,$address,$port))<0) { echo "socket_bind() 失败的原因是:".socket_strerror($ret)."
"; } //开始监听 if(($ret=socket_listen($sock,4))<0) { echo "socket_listen() 失败的原因是:".socket_strerror($ret)."
"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror($msgsock) . "/n"; echo "/nThe Server is Stop……/n"; break; }

Android-客户端开发流程图及案例

Android 客户端开发流程1项目流程图 A A A A A A A A A

2项目阶段描述2.1 项目需求分析阶段描述 输入: 《项目产品开发计划书》 《总体方案书》 输出: 《项目产品需求规格说明书》 《产品测试计划及裁减说明书》 2.2 项目设计施阶段 输入: 《项目产品需求规格说明书》 《产品测试计划及裁减说明书》 输出: 《产品概要设计说明书》 《系统测试方案》 《集成测试方案》 2.3 项目实施阶段 输入: 《项目产品需求规格说明书》 《产品概要设计说明书》 待更新的《系统测试方案》 待更新的《集成测试方案》 输出: 《产品详细设计说明书》 更新的《系统测试方案》 更新的《集成测试方案》

2.4 项目测试阶段 输入: 《项目产品需求规格说明书》 《产品详细设计说明书》 《系统测试方案》 《集成测试方案》 《产品单元测试记录》 输出: 《系统测试缺陷记录》 《产品单元测试报告》 《集成测试报告》 《系统测试报告》 2.5 项目验收阶段 输入: 《项目产品需求规格说明书》 《产品详细设计说明书》 《系统测试缺陷记录》 《产品单元测试报告》 《集成测试报告》 《系统测试报告》 输出: 《项目总结报告》 《项目中无法满足功能项说明书》 《维护方案》

本文介绍了如何使用Android搭建客户端,实现手机和服务器的交互。让我们了解如何采用SSH框架,把服务器端的信息用JSON的形式发送到手机端。 AD:笔者以前是学的Java EE,由于项目需要要开发Android,所以临时补了一个多星期,主要是手机端和服务器端交互,双向开发的。 首先在服务器端,我采用的是SSH框架,struts 2集合了JSON插件,服务器和客户端的信息交互采用的JSON 来传输,由于在服务器端用了Struts 2,所以我就用装了一个JSON插件。这样,很轻易的就把服务器端的信息用JSON的形式发送到了手机端。以下是代码: 首先,在服务器端搭建好SSH框架,具体细节就不在陈述。struts.xml配置如下: 1. 2. 3.result 4. 5. 6. 7. 8. 9. result 10. 11. 手机端的代码如下: 首先,手机端有一个缓存类,主要用于缓存一些手机端需要访问的数据,这样的好处是可以达达节省手机和服务器的交互,用单例实现的: 1.packagecom.jclick.cache; 2. https://www.360docs.net/doc/fe16716477.html,er; 4. 5.publicclassCache{ 6. 7.privateUserUser; 8. 9.privateCache(){ 10. 11.} 12./**构造单例*/ 13.privatestaticclassCacheHolder{ 14.privatestaticfinalCacheINSTANCE=newCache(); 15.} 16.publicCachegetInstance(){ 17.returnCacheHolder.INSTANCE;

相关文档
最新文档