JSON是JavaScript Object Notation的缩写,是一种轻量级的数据交换格式。JSON基于JavaScript(Standard ECMA-2623rd Edition-December 1999)的一个子集,采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
简单来说就,JSON是JavaScript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构
(1)对象
对象在JavaScript中表示为“{}”括起来的内容,数据结构为{key:value,key:value,...}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为“对象.key”获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。
(2)数组
数组在JavaScript中是中括号“[]”括起来的内容,数据结构为["java","javascript","vb",...],取值方式和所有语言中一样,使用索引获取。字段值的类型可以是数字、字符串、数组、对象几种。
经过对象、数组这两种结构就可以组合成复杂的数据结构了。
和XML一样,JSON也是基于纯文本的数据格式。由于JSON天生是为JavaScript准备的,因此,JSON的数据格式非常简单,可以用JSON传输一个简单的字符串、数字、布尔值,也可以传输一个数组,或者一个复杂的对象。
用JSON表示字符串、数字和布尔值的方法非常简单,例如用JSON表示一个简单的 字符串数据“abc”,则其表示格式为:
除了字符",\,/和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他Unicode字符可以直接输出。下面的图6-3是一个字符串的完整表示结构。
在接下来的内容中,将通过一个具体实例的实现过程,来详细讲解在Android系统中远程下载服务器中的JSON数据的方法。
图6-3 String的完整表示结构
本实例的具体实现流程如下。
(1)使用Eclipse新建一个JavaEE工程作为服务器端,设置功成名为“ServerForJSON”自动生成工程文件后,打开文件web.xml进行配置,配置后的代码如下。
2)编写业务接口Bean的实现文件NewsService.java,具体代码如下
设置业务Bean的名称为NewsServiceBean,实现文件NewsServiceBean.java的具体代码如下。(www.xing528.com)
3)创建一个名为“News”的实现类,实现文件News.java的具体代码如下
4)编写文件NewsListServlet,具体实现代码如下
(5)新建一个JavaScript文件jsonnewslist.jsp,在里面引入JSON功能,具体实现代码如下。
(6)使用Eclipse新建一个名为“GetNewsInJSONFromInternet”的Android工程文件,在文件AndroidManifest.xml中申明对网络权限的应用,具体实现代码如下。
7)编写主界面布局文件mian.xml,具体实现代码如下
在上述代码中,通过ListView控件列表显示获取的JSON数据。其中ListView的Item显示的数据为item.xml,具体实现代码如下。
(8)编写文件MainActivity.java,功能是获取JSON数据并显示数据,具体实现代码如下
(9)编写文件NewsService.java,定义方法getJSONLastNews()请求前面搭建的JavaEE服务器,当获取JSON输入流后解析JSON的数据,并返回集合中的数据。文件NewsService.java的具体实现代码如下。
到此为止,整个实例介绍完毕,执行后将成功获取服务器端JSON的数据
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。