Json实现页面多个对象的保存Word下载.docx

上传人:b****2 文档编号:5743075 上传时间:2023-05-05 格式:DOCX 页数:37 大小:29.44KB
下载 相关 举报
Json实现页面多个对象的保存Word下载.docx_第1页
第1页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第2页
第2页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第3页
第3页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第4页
第4页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第5页
第5页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第6页
第6页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第7页
第7页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第8页
第8页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第9页
第9页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第10页
第10页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第11页
第11页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第12页
第12页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第13页
第13页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第14页
第14页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第15页
第15页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第16页
第16页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第17页
第17页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第18页
第18页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第19页
第19页 / 共37页
Json实现页面多个对象的保存Word下载.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Json实现页面多个对象的保存Word下载.docx

《Json实现页面多个对象的保存Word下载.docx》由会员分享,可在线阅读,更多相关《Json实现页面多个对象的保存Word下载.docx(37页珍藏版)》请在冰点文库上搜索。

Json实现页面多个对象的保存Word下载.docx

apos;

userForm&

)"

提交"

/form>

/body>

nage,age,sex对应Person对象的三个属性,也就是要保存三个对象到数据库中。

假设页面上三个对象的属性值分别为"

tom"

201,"

jacky"

210,"

lily"

221.则在js中通过&

&

将这些值分隔,组装的字符串为

("

20,1):

21,0):

22,1)把这个值赋给userObj,并传到服务器上。

在服务器端的解析代码大致为:

()

Stringstr=request.getParameter("

);

String[]strArray=str.split("

:

Personperson=newPerson();

for(Stringobj:

strArray){

String[]personArray=obj.split("

"

person.setName(personArray[0]);

person.setAge(personArray[1]);

person.setSex(personArray[2]);

personService.insert(person);

}

但这样实现有个漏洞,就是当页面输入框中包含&

时,那服务器解析时就不能将正确的值赋给person对象。

这几天研究了下json,就可以避免这个问题。

而且js和服务器端代码可以缩减很多。

jsonjava解析有十几种,我用的是json-lib,觉得他功能比较强大,有关它的语法官网上介绍得很详细,

在这就不多说了,可以参考

http:

//json- 

json数据格式很简单,比如{name:

age:

20,sex:

1}就表示一个person对象。

详细可以参考json官网

//www.json.org 

在js中我把几个preson对象组装成一个数组,并把这个字符串赋给userObj然后提交表单.

varobjs=[{name:

1},{name:

21,sex:

},{name:

22,sex:

1}]

document.getElementById("

).value=objs;

document.forms["

].submit();

在服务器端的解析代码为:

List<

Person>

persons=newArrayList<

();

if(str!

=null&

&

!

.equals(str)) 

list=getList(str,newPerson());

for(Personp:

list)

personService.insert(p);

下面是封装的方法

@SuppressWarnings("

unchecked"

public<

T>

List<

getList(Stringstr,Tt){

JSONArrayarray=JSONArray.fromObject(str);

//将str转换成json对象

JsonConfigjsonConfig=newJsonConfig();

//参数设置

jsonConfig.setRootClass(t.getClass());

//设置array中的对象类型

list=(List<

)JSONArray.toCollection(array,jsonConfig);

//将数组转换成T类型的集合

returnlist;

2.JS操作JSON总结

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式。

同时,JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不须要任何特殊的API或工具包。

本文主要是对JS操作JSON的要领做下总结。

在JSON中,有两种结构:

对象和数组。

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

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

”(冒号);

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

名称用引号括起来;

值如果是字符串则必须用括号,数值型则不须要。

例如:

varo={"

xlid"

cxh"

xldigitid"

123456,"

topscore"

2000,"

topplaytime"

2009-08-20"

};

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

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

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

例如:

varjsonranklist=[{"

},{"

zd"

1500,"

2009-11-20"

}];

为了方便地处理JSON数据,JSON提供了json.js包,下载地址:

//www.json.org/json.js

在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。

JSON字符串:

varstr1='

{"

"

"

man"

}'

;

JSON对象:

varstr2={"

};

一、JSON字符串转换为JSON对象

要运用上面的str1,必须运用下面的要领先转化为JSON对象:

//由JSON字符串转换为JSON对象

varobj=eval('

('

+str+'

)'

或者

varobj=str.parseJSON();

或者

varobj=JSON.parse(str);

然后,就可以这样读取:

Alert(obj.name);

Alert(obj.sex);

特别留心:

如果obj本来就是一个JSON对象,那么运用eval()函数转换后(哪怕是多次转换)还是JSON对象,但是运用parseJSON()函数处理后会有疑问(抛出语法异常)。

二、可以运用toJSONString()或者全局要领JSON.stringify()将JSON对象转化为JSON字符串。

varlast=obj.toJSONString();

//将JSON对象转化为JSON字符

varlast=JSON.stringify(obj);

alert(last);

留心:

上面的多个要领中,除了eval()函数是js自带的之外,其他的多个要领都来自json.js包。

新版本的JSON修改了API,将JSON.stringify()和JSON.parse()两个要领都注入到了Javascript的内建对象里面,前者变成了Object.toJSONString(),而后者变成了String.parseJSON()。

如果提示找不到toJSONString()和parseJSON()要领,则说明您的json包版本太低。

3.JSON实例应用

JSON实际就是一种数据格式,传递数据,特别的地方在于:

JSON的数据格式可以直接构成JavaScript中的一个对象,因些可以在JavaScript很易容访问到它的数据。

(个人的见解,关于JSON的其它资料可以去google一下)

下面就应用一下JSON:

使用JSON需要一些文件:

将js对象转化成JSON的数据格式的JS如:

json.js

将Java对象转化成JSON的数据格式的jar包:

json-lib-2.3-jdk15.jar等可以在下面的附件中获得

我在我的工程中引入了这个文件(也可以不用这个文件,那么你需要自己在js或class中拼成JSON格式的数据)

Html代码 

1.<

!

DOCTYPE 

HTML 

PUBLIC 

-//W3C//DTD 

4.01 

Transitional//EN"

2.<

html>

3. 

head>

4. 

5. 

title>

JSON学习<

/title>

6. 

meta 

http-equiv="

pragma"

content="

no-cache"

7. 

cache-control"

8. 

expires"

9. 

keywords"

keyword1,keyword2,keyword3"

10. 

description"

This 

is 

my 

page"

11. 

script 

type="

text/javascript"

src="

js/json.js"

/script>

12. 

/head>

13. 

14. 

language="

javascript"

15. 

var 

xmlHttp;

16. 

function 

createXMLHttpRequest() 

17. 

if 

(window.ActiveXObject) 

18. 

xmlHttp 

new 

ActiveXObject("

Microsoft.XMLHTTP"

19. 

20. 

else 

(window.XMLHttpRequest) 

21. 

XMLHttpRequest();

22. 

23. 

24. 

doJSON(){ 

25. 

car 

getCarObject();

26. 

//将JS对象转化成JSON格式的Text 

27. 

carAsJSON 

JSON.stringify(car);

28. 

alert(carAsJSON);

29. 

url 

JsonTest1?

timeStamp="

+new 

Date().getTime();

30. 

createXMLHttpRequest();

31. 

xmlHttp.open("

POST"

 

url, 

true);

32. 

xmlHttp.onreadystatechange 

handleStateChange;

33. 

xmlHttp.setRequestHeader("

Content-Type"

application/x-www-form-urlencoded"

34. 

xmlHttp.send(carAsJSON);

35. 

36. 

//Ajax的回调方法 

37. 

handleStateChange(){ 

38. 

if(xmlHttp.readyState 

== 

4){ 

39. 

if(xmlHttp.status 

200){ 

40. 

parseResults();

41. 

42. 

43. 

44. 

//具体的回调作动 

45. 

parseResults(){ 

46. 

responseDiv 

serverResponse"

47. 

if(responseDiv.hasChildNodes()){ 

48. 

responseDiv.removeChild(responseDiv.childNodes[0]);

49. 

50. 

//xmlHttp.responseText是servlet中返回回来的JSON格式的数据,将它创建成一个js的node对象放到DIV中 

51. 

responseText 

document.createTextNode(xmlHttp.responseText);

52. 

responseDiv.appendChild(responseText);

53. 

//将json格式的Text转化成JSON对象:

用eval('

+response+'

) 

54. 

resultJson 

eval('

+xmlHttp.responseText+'

55. 

alert(resultJson);

56. 

alert(resultJson.make);

57. 

alert(resultJson.model);

58. 

alert(resultJson.year);

59. 

alert(resultJson.color);

60. 

61. 

//JS中的一个对象 

62. 

Car(make,model,year,color){ 

63. 

this.make 

make;

64. 

this.model 

model;

65. 

this.year 

year;

66. 

this.color 

color;

67. 

68. 

//构成对象并返回 

69. 

getCarObject(){ 

70. 

return 

Car("

Dodge"

Coronet 

R/T"

1968, 

yellow"

71. 

72. 

73. 

74. 

75. 

form 

action="

#"

76. 

input 

value="

Click 

here 

to 

send 

JSON 

data 

the 

server"

onclick="

doJSON();

77. 

78. 

h2>

Server 

Response:

/h2>

79. 

div 

id="

80. 

81. 

82. 

83.<

/html>

[html] 

viewplaincopy

doJSON(){ 

//将JS对象转化成JSON格式的Text 

//Ajax的回调方法 

handleStateChange(){ 

4){ 

200){ 

//具体的回调作动 

parseResults(){ 

responseDiv

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2