自:http://topic.csdn.net/u/20100906/23/28630821-d81f-47d0-8db8-3d65b47cd66d.html
一、
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时,也易于机器解析和生成。
二、JSON数据格式解析:
和XML一样,JSON也是基于存文本的数据格式。您可以用JSON传输一个简单的String、Number、Boolean,也可以传输一个数组或者一个复杂的Object对象。
例如:
1、用JSON表示一个简单String “abc”,其格式为:”abc”。除了字符“,\,/ 和一些控制符(\b,\n,\t等)需要编码外,其他Unicode字符可以直接输出。
2、用JSON表示一个数组对象,使用“[ ]“包含所有元素,每个元素用逗号分隔,元素可以使任意的value,例如,一下数组包含了一个String、Number、Boolean、和一个null:
[“abc”,123,false,null]。
3、Object对象在JSON中用“{ }“包含一系列无序的Key-Value键值对表示,实际上此处的Object相当于Java中的Map。注意Key只能用String表示。例如:一个Address对象包含如下Key-Value:{“city”:”beijing”,”street”:”chaoyang”,”postcode”:100025}。
三、JAVASCRIPT处理JSON数据
Function demo(){
var v={“name”:”SMITH”,”address”: {“city”:”beijing”,”street”:”chaoyang”,”postcode”:100025}};
document.write(v.name);
document.write(v.address.city);
}
四:JSON和XML的比较
XML和JSON都是用结构化方法来标记数据,下面来做一个简单的比较。
<?xml version=”1.0” encoding=”utf-8”?>
<country>
<name>中国</name>
<province>
<name>黑龙江</name>
<citys>
<city>哈尔滨</city>
<city>大庆</city>
</citys>
</province>
</country>
用JSON表示如下:
{
name:”中国”,
province:[
{
Name:”黑龙江”,citys:{“哈尔滨”,”大庆”}
}
]
}
XML比JSON更有可读性。不过,我们读起来费解的语言,恰恰是适合机器阅读的。编写的手写难度来说,XML还是舒服一些,好读当然就好写。不过写出来的字符JSON就明显少很多。去掉空白制表以及换行的话,JSON就是有用数据,而XML却包含很多重复的标记字符。
五、下面列举两个对象:JSONArray和JSONObject
在写有关于JSON的程序时首先要加入六个JAR包:commons-beanutils-1.7.0.jar、commons-collections.jar、commons-lang-2.2.jar、ezmorph-1.0.4.jar、json-lib-2.1-jdk15.jar、xom-1.1d2.jar
(1)JSONArray
例子:
List list = new ArrayList();
list.add("a");
list.add("b");
JSONArray jso = JSONArray.fromObject(list);
System.out.println(list);
输出的结果是:[“a”,”b”] 。
(2)JSONObject
例子:
Map map = new HashMap();
map.put( "int", new Integer(1) );
map.put( "arr", new String[]{"a","b"} );
map.put( "func", "function(i){ return this.arr; }" );
JSONObject json = JSONObject.fromObject( map );
System.out.println( json );
输出的结果是:{"arr":["a","b"],"int":1,"func":function(i){ return this.arr; }}
(3)JSONObject to XML
例子:
JSONObject json = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");
XMLSerializer xmlSerializer = new XMLSerializer();
String xml = xmlSerializer.write(json);
System.out.println(xml);
XML to JSONObject
例子:
String xmls = "<?xml version='1.0' encoding='UTF-8'?><o><int type='number'>1</int>" + "<name type='string'>json</name></o>";
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read(xmls); System.out.println( json.toString(2) );
六、下面列举AJAX和JSON的例子
1、环境struts、hibernate、JSON、AJAX
2、首先,加载struts和hibernate框架,然后再把JSON的JAR包放到lib下。
创建一个Action:
Action的内容如下:
PrintWriter out = response.getWriter();
JSONObject obj = new JSONObject();
JSONArray js = new JSONArray();
//这里的数据封装是从数据库查询来的
MesDao md = new MesDao();
List list = md.findMess();
for(int i=0;i<list.size();i++){
JSONObject objtemp = new JSONObject();
TMessage tm = (TMessage) list.get(i);
objtemp.put("id", tm.getId());
objtemp.put("name", tm.getName());
js.add(objtemp);
}
obj.put("js",js);
out.print(obj.toString());
然后,创建一个JSP页面:
其内容如下:
<script type="text/javascript" src="prototype1.4.js"></script>
<script type="text/javascript" src="toolpro.js"></script>
<script type="text/javascript">
function demo(){
new Ajax.Updater("content","test.do");
}
</script>
<a href='javascript:getcomplex()'>获取数据</a>
<div id="content">
正在获取内容...
</div>
然后创建toolpro.js
toolpro.js的内容如下:
function getcomplex(){
var url = 'test.do';
var ajax = new Ajax.Request(url,
{method:'post',Complete:showcomplex});
}
function showcomplex(dataResponse)
{
var data = eval('(' + dataResponse.responseText + ')');
var str='';
for(var i=0;i<data.js.length;i++)
{
str+='<ul>';
str+='<li>'+data.js.id+'</li>';
str+='<li>'+data.js.name+'</li>';
str+='</ul>';
}
document.getElementById("content").innerHTML=str;
}
分享到:
相关推荐
"javax.websocket-api-1.0.jar"是Java WebSocket API的一个实现,它是Java EE 7规范的一部分,允许开发者在服务器端和客户端之间建立WebSocket连接。 WebSocket API的核心接口包括`ServerEndpoint`、`...
Apache Tomcat 9.0.40 是一个广泛使用的开源软件,它是一个实现了Java Servlet、JavaServer Pages(JSP)和Java EE的Web应用程序容器。这个版本是针对Windows x64平台的,意味着它专为64位操作系统设计。本文将深入...
官方原版的`apache-tomcat-8.5.53-windows-x64.zip`是针对Windows 64位系统的版本,包含了所有必要的组件来搭建和运行基于Java EE Web应用程序。以下是关于这个版本的Apache Tomcat的一些详细知识点: 1. **Tomcat...
Tomcat是轻量级的,因为它只实现了Java EE Web应用程序规范的部分,尤其是Servlet和JSP规范。8.5版本是Tomcat的一个稳定版本,提供了许多性能改进和新特性。 在Windows环境下安装32位的Apache Tomcat 8.5.54,你...
CSDN是国内知名的IT技术社区,其Java专区汇聚了大量的技术博客、问答和项目资源。无论是Java基础还是高级主题,这里都有丰富的资料可供参考,是Java学习者的宝库。 ### 7. Developer Resources for Java Technology...
6. **删除Java EE和Corba模块(JEP 320)**: 这些模块不再包含在JDK中,减少了JDK的大小和依赖性,有助于轻量化部署。 7. **强引用的弱化(JEP 334)**: 引入了`PhantomReference`类的改进,使得垃圾收集器能够更好...
1. **Java EE 8支持**:Tomcat 9全面支持Java EE 8规范,包括Java Servlet 4.0、EL 3.0、JSTL 1.2等,为开发者提供了最新的标准工具和API。 2. **HTTP/2支持**:此版本增加了对HTTP/2协议的支持,通过使用更高效的...
- Java开发指南: 覆盖了Java EE、Java SE等多个领域的开发指南。 - 示例代码库: 提供各种实用的Java示例代码。 - Web服务与XML技术: 特别关注Web服务和XML在Java中的应用。 ### 6. JDon - **网址**: ...
根据提供的信息,我们可以总结出以下关于Java学习记录中涉及到的数据库操作相关知识点: ### 一、SQL查询基础 #### 1. 获取表名 - **语法**:`SELECT name FROM sysobjects WHERE xtype = 'U'` - `sysobjects`是...
1. **Java EE 9支持**:Tomcat 10.0.x系列主要目标是兼容Java EE 9规范,尤其是Servlet 4.0标准。这带来了HTTP/2协议的支持,改进了API和性能。 2. **HTTP/2支持**:HTTP/2协议引入了多项优化,如多路复用、头部压缩...
Java EE(Java Platform, Enterprise Edition),以前也称为J2EE,是Java技术在企业级应用开发中的核心框架。它提供了一系列标准接口和组件模型,旨在简化分布式多层应用程序的开发、部署和管理。Java EE 5是这个...
Java EE(Java Platform, Enterprise Edition)是Oracle公司提供的一个企业级应用开发平台,它构建在Java SE基础之上,为开发和部署分布式、多层的企业级应用程序提供了丰富的API和工具。本教程旨在帮助读者全面理解...
Java EE SSM 酒店管理系统是一个基于Java企业级开发平台构建的应用,主要利用Spring、Spring MVC和MyBatis这三大框架技术实现。这个系统旨在为酒店提供一套完整的管理解决方案,包括但不限于客房预订、入住退房管理...
Java EE企业级应用开发教程(SSM)源码是一个涵盖了使用Java开发企业级应用程序的实践示例。SSM是Spring、Spring MVC和MyBatis这三大框架的简称,它们是Java EE开发中常用的技术栈。这个教程源码将帮助开发者深入...
【标题】"CSDN社区Java杂志2"揭示了这是一本专注于Java技术的电子杂志,由知名IT社区CSDN在2005年1月发布,是该系列的第1期,也是总第2期。这本杂志通常会包含一系列关于Java编程语言、框架、开发工具以及相关技术的...
- Tomcat 8.5.x系列是Tomcat 8的一个主要分支,支持Java EE 7规范。 - 它带来了性能提升、内存优化以及安全性增强,比如支持最新的TLS协议版本。 - 新增了基于注解的部署,简化了Web应用的配置。 3. **安装与...
java_ee_api_中英文对照版.chm Java设计模式(疯狂Java联盟版).chm JDK_API.CHM JDK-1.6-API文档中文版.chm jsp标准标签库(jstl).doc jspAPI servlet-api.chm POI_3.9_API.CHM(java连接excel表格) SqlServer总大纲...
2. Java EE(Java 2 Platform, Enterprise Edition):Java企业版,主要用于构建大型的企业级分布式应用。 3. Java ME(Java 2 Platform Micro Edition):Java微型版,适用于嵌入式设备和移动设备开发。 开发Java...
Java EE 6(Java Platform, Enterprise Edition 6)是Java技术的一个重要版本,专为构建企业级应用程序而设计。这个API包含了一系列的组件和服务,旨在提高开发效率、可移植性和可伸缩性,同时简化了Java EE应用的...
而对于高级开发者来说,则可以通过参与Java.net、CSDN等社区的交流来不断提升自己的技术水平。这些网站不仅能够为个人提供学习资源,还能帮助企业团队在项目开发过程中获取所需的信息和技术支持。