Json.docx

上传人:b****4 文档编号:24206551 上传时间:2023-05-25 格式:DOCX 页数:13 大小:69.22KB
下载 相关 举报
Json.docx_第1页
第1页 / 共13页
Json.docx_第2页
第2页 / 共13页
Json.docx_第3页
第3页 / 共13页
Json.docx_第4页
第4页 / 共13页
Json.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Json.docx

《Json.docx》由会员分享,可在线阅读,更多相关《Json.docx(13页珍藏版)》请在冰豆网上搜索。

Json.docx

Json

第一章介绍JSON和语法

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。

易于人阅读和编写。

同时也易于机器解析和生成。

它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999(信息标准化和通信系统(由netscpace公司BrendanEich提出,本标准在1999年11月被ECMAGeneralAssembly接受采纳为ECMA-262第3版。

))的一个子集。

JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。

这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

{name:

”小花”}对象

∙“名称/值”对的集合(Acollectionofname/valuepairs)。

不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hashtable),有键列表(keyedlist),或者关联数组(associativearray)。

∙值的有序列表(Anorderedlistofvalues)。

在大部分语言中,它被理解为数组(array)。

[“aa”,”bb”]

[{name:

”小花”},{name:

”小花”},{name:

”小花”}]

这些都是常见的数据结构。

事实上大部分现代计算机语言都以某种形式支持它们。

这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

JSON具有以下这些形式:

对象是一个无序的“‘名称/值’对”集合。

一个对象以“{”(左括号)开始,“}”(右括号)结束。

每个“名称”后跟一个“:

”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

{name:

‘aa’}

示例:

varob={name:

”小花”,age:

23}

数组是值(value)的有序集合。

一个数组以“[”(左中括号)开始,“]”(右中括号)结束。

值之间使用“,”(逗号)分隔。

vararr=[“aa”,”bb”,”cc”]

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(array)。

这些结构可以嵌套。

vararr=[“小花”,”小白”];

vararr1=[];

字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。

一个字符(character)即一个单独的字符串(characterstring)。

字符串(string)与C或者Java的字符串非常相似。

数值(number)也与C或者Java的数值非常相似。

除去未曾使用的八进制与十六进制格式。

除去一些编码细节。

第二章JS解析JSON

一、JSON2解析JSON

1.访问JSON对象中的成员我们可以如下使用:

test1.js

varmyJSONObject={"students":

[

{"stId":

"001","stName":

"小花","stAge":

"23"},

{"stId":

"002","stName":

"小红","stAge":

"24"}

]

};

alert(myJSONObject.students.[0].stName);

2.用eval()方法把JSON字符串转化成JSON对象.

把JSON字符串转化成JSON对象,可以使用eval()函数。

test2.js

varmyObject=eval('({"name":

"ss"})');

alert(myObject.name);//结果ss

varstr='{"name":

"fendouer","age":

23}';

varob=JSON.parse(str) ;

alert(ob.name)

4.使用JSON2中的JSON对象的stringify()方法把JSON对象转换成字符串

varjson={"name":

"fendouer","age":

23};

varstr=JSON.stringify(str) ;

alert(str)

第三章JAVA中使用JSON

一、使用json-lib-2.3把Java对象转换成JSON对象

在java程序中通常会用到JSON格式作为格式化数据传输,json-lib-2.3是一个转换数据的工具。

下载地址是:

在其网站上可以下载源代码json-lib-2.3-jdk15-sources.jar包、json-lib-2.3-jdk15-javadoc.jar文档包、json-lib-2.3-jdk15.jar核心包。

将其下载下来放入项目的classpath下。

在使用json-lib-2.3包时还要其它的依赖包:

如下图:

JSONTest.java

packagecom.fendou;

importjava.util.HashMap;

importjava.util.Map;

importnet.sf.json.JSONArray;

importnet.sf.json.JSONFunction;

importnet.sf.json.JSONObject;

importnet.sf.json.JSONSerializer;

publicclassJSONTest{

publicstaticvoidmain(String[]args){

JSONTesttt=newJSONTest();

tt.formatJSONOBject()

//tt.formatJSONArray();

//tt.formatJSONMap();

}

publicvoidformatJSONOBject(){

JSONObjectobj=newJSONObject();

obj.put("name","foo");

obj.put("num",newInteger(100));

obj.put("balance",newDouble(1000.21));

obj.put("is_vip",newBoolean(true));

obj.put("nickname",null);

System.out.print(obj);

}

publicvoidformatJSONArray(){

JSONArrayja=newJSONArray();

Personperson=newPerson();

person.setId

(1);

person.setName("linla");

ja.add(person);

System.out.print(ja);

}

publicvoidformatJSONMap(){

Mapmap=newHashMap();

Personperson=newPerson();

person.setId

(1);

person.setName("linla");

map.put("t1",person);

JSONArrayja=newJSONArray();

ja.element(map);

System.out.println(ja);

}

}

第四章在AJAX中使用JSON

一、通过ajax后台向前台传递JSON格式数据

Json.java

packagecom.fendou;

importjava.io.IOException;

importjava.io.PrintWriter;

importjava.util.HashMap;

importjava.util.Map;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importnet.sf.json.JSONArray;

importnet.sf.json.JSONFunction;

importnet.sf.json.JSONObject;

publicclassJsonextendsHttpServlet{

@Override

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

doPost(req,resp);

}

@Override

protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

PrintWriterout=resp.getWriter();

resp.setContentType("application/x-json");

//对象

/*JSONObjectjob=newJSONObject();

job.put("name","cc");

out.print(job);*/

//数组

/*JSONArrayja=newJSONArray();

Personperson=newPerson();

person.setId

(1);

person.setName("linla");

ja.add(person);

out.print(ja);*/

//map集合

/*Mapmap=newHashMap();

Personperson=newPerson();

person.setId

(1);

person.setName("linla");

map.put("t1",person);

JSONArrayja=newJSONArray();

ja.element(map);

out.print(ja);*/

out.flush();

out.close();

}

}

Web.xml文件

xmlversion="1.0"encoding="UTF-8"?

>

xmlns="

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

Json

com.fendou.Json

Json

/Json

前台页面:

动人

test.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"

contentType="text/html;charset=utf-8"%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

--

varproAjax={

xmlHttpreq:

false,

createXMLHttpReq:

function(){

if(window.XMLHttpRequest){

//Mozilla

xmlHttpreq=newXMLHttpRequest();

}else{

//IE

if(window.ActiveXObject){

try{//比较新的版本

xmlHttpreq=newActiveXObject("Msxml2.XMLHttp");

}catch(e){

try{//失败就创建比较老的版本

xmlHttpreq=newActiveXObject("Microsoft.XMLHttp");

}catch(e){//还失败就回家种田

}

}

}

}

},

sendreq:

function(val){

url="Json";

proAjax.createXMLHttpReq();

xmlHttpreq.onreadystatechange=proAjax.handleResponse;

xmlHttpreq.open("GET",url,true);

xmlHttpreq.send(null);

},

handleResponse:

function(){

//判断XHR的状态

if(xmlHttpreq.readyState==4){

alert(xmlHttpreq.readyState);

//回应的状态=200,表示成功返回了服务器的东东

if(xmlHttpreq.status==200){

alert(xmlHttpreq.status);

//得到从服务端传回来的Text对象

varstr=xmlHttpreq.responseText;

varob=eval(str);

alert(ob);

//varmyObject=JSON.parse(str);

alert(myObject);

}

}

},

addEvent:

function(elm,evType,fn,useCapture){

if(elm.addEventListener){

elm.addEventListener(evType,fn,useCapture);

returntrue;

}elseif(elm.attachEvent){

varr=elm.attachEvent('on'+evType,fn);

returnr;

}else{

elm['on'+evType]=fn;

}

},

init:

function(){

varvl=document.getElementsByName("vl")[0];

proAjax.addEvent(vl,'click',proAjax.tt,false);

},

execute:

function(){

varvl=document.getElementsByName("vl")[0];

proAjax.sendreq(name);

}

}

proAjax.addEvent(window,'load',proAjax.init,false);

-->

点我

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1