Struts-JSON的提高开发效率
?
关于Struts-JSON的提高开发效率:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解
析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
?
?
二 、struts2对于JSON有什么支持?:struts2提供了一个struts2-json-plugin.jar 用于支持JSON的使用。当我们在struts2中使用JSON的时候
必须导入struts2-json-plugin.jar
并且需要一下几点:
?
1.<package name="struts2" extends="json-default">
? ? ? ?//必须是继承struts2-json-plugin.jar中struts-plugin.xml文件中的定义的json-default
? ? ? ?/*struts2-json-plugin.jar中struts-plugin.xml配置信息:
? ? ? ? ?<struts>
? ? ? ? ?<package name="json-default" extends="struts-default">
? ? ? ? ? ? ? ? ? ? ? ? ? ?<result-types>
? ? ? ? ? ? ? ? ? ? ? ? ? ?<result-type name="json" type="json"/></action>//我们需要将result
? ? ? ? ?的?返回类型定义为json
?
三、关于JSON在struts.xml中的一些属性的功能。?
?四、关于JSON在Action对象中注解的使用。:对于JSON的注解主要有一下几个属性可以定义name:指定序列化的时候对应的名称/*
?例:@JSON(name = "myname") 则在客户端接收到的JSON中UserName属性对应的地方为 :? ? ? ? ? ? ? ? ? ? ?{myname:"张三"} 以前的则是{username:"张三"}? ? ?public String getUsername() {return username;? ? ?}*/serialize:对该方法进行序列化 ?true/false/*例:@JSON(serialize=true) 对该方法序列化,如果为false则不进行序列化public String getUsername() {return username;}*/deserialize:不对该方法进行序列化 ?true/false/*例:@JSON(deserialize=true) 不对该方法序列化,如果为false则进行序列化public String getUsername() {return username;}*/format:设置JSON对该方法的转换方式,一般用于对时间进行转换?/*例:@JSON(format="yyyy-MM-dd") ?则客户端接收的JSON中date对应的值为:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {date:"2011-10-2"}public Date getDate() {return date;}*/?
五、具体的实例:?JSP:
?得到的结果为:{"date":"2011-03-21","mypassword":"world"}?
//使用浏览器的bug工具查看 alert(returnedData);弹出来的只是 [object,Object]//这里我们可以看见password的名称已经改为mypassword了 而设定那么的data属性,名称则没有变