`

JSON 之 利用JSON插件进行数据交换格式

阅读更多
http://developer.51cto.com/art/201001/176090.htm
我们想要从Action返回到调用页面的数据。这个时候配置includeProperties或者excludeProperties拦截器即可。而这2个拦截器的定义都在struts2的json-default包内。
AD:2013云计算架构师峰会精彩课程曝光
JSON(Java Script Object Notation),是一种语言无关的数据交换格式。 JSON插件是Structs 2 的Ajax插件,通过利用JSON插件,开发者可以很方便,灵活的利用Ajax进行开发。

Json是一种轻量级的数据交换格式,JSon插件提供了一种名为json的Action ResultType 。一旦为Action指定了该结果处理类型,JSON插件就会自动将Action里的数据序列化成JSON格式的数据,并返回给客户端物理视图的JavaScript。简单的说,JSON插件允许我们在JavaScript中异步的调用Action。

更好更快更高效解析JSON说明
探索非同凡响的Json数据格式说明
讲述JSON WEB站点服务器相应错误
详数JSON版本的种种调用与测试
如何更好的易于机器解析和生成JSON轻量级
而且Action不需要指定视图来显示Action的信息显示而是由JSON插件来负责具体将Action里面具体的信息返回给调用页面。Json的数据格式可简单如下形式: person = { name: 'Jim',age: 18,gender: 'man'}。

如果action的属性很多,我们想要从Action返回到调用页面的数据。这个时候配置includeProperties或者excludeProperties拦截器即可。而这2个拦截器的定义都在struts2的json-default包内,所以要使用该拦截器的包都要继承自json-default。

<struts>
    <constant name="struts.objectFactory" value="spring"/>      
    <include file="struts-admin.xml"></include>  
    <package name="default" extends="json-default">  
        <action name="person" class="com.person.PersonAction" method="view">
        <result type="json">
           <param name="includeProperties">            
            person\.name,persoon\.age,person\.gender            
           </param>>            
        </result>
        </action>
    </package>        
</struts>
利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1...person9,而我只要JSON插件,则可以用如下的正则表达式。

<struts>
    <constant name="struts.objectFactory" value="spring"/>      
    <include file="struts-admin.xml"></include>  
    <package name="default" extends="json-default">  
        <action name="person" class="com.person.PersonAction" method="view">
        <result type="json">
           <param name="includeProperties">            
            person\.name,persoon\.age,person\.gender            
           </param>>            
        </result>
        </action>
    </package>        
</struts>
利用Struts 2的支持的可配置结果,可以达到过滤器的效果。Action的处理结果配置支持正则表达式。 
但是如果返回的对象是一个数组格式的Json数据。比如peson Bean中有对象persion1...person9,而我只要person1的json数据, 
则可以用如下的正则表达式。 
<struts>
    <constant name="struts.objectFactory" value="spring"/>      
    <include file="struts-admin.xml"></include>  
    <package name="default" extends="json-default">  
        <action name="person" class="com.person.PersonAction" method="view">
        <result type="json">
           <param name="includeProperties">            
            person\[\d+\]\.person1 
           </param>>            
        </result>
        </action>
    </package>        
</struts>
excludeProperties拦截器的用法与此类同,如果拦截的仅仅是一个对象,如果拦截掉person Bean的整个对象。 
<struts>
    <constant name="struts.objectFactory" value="spring"/>      
    <include file="struts-admin.xml"></include>  
    <package name="default" extends="json-default">  
        <action name="person" class="com.person.PersonAction" method="view">
        <result type="json">
           <param name="excludeProperties">            
            person 
           </param>>            
        </result>
        </action>
    </package>        
</struts>
需要注意的是,如果用JSON插件把返回结果定为JSON。而JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行,那么可以在该方法的前面加注解声明该方法不做序列化。

public String getName()  
 { 
return this.name; 
 } 
需要引入 import com.googlecode.jsonplugin.annotations.JSON; 

@JSON(serialize=false) 
public User getUser() { 
    return this.User; 


@JSON(format="yyyy-MM-dd") 
public Date getStartDate() { 
    return this.startDate; 
}
分享到:
评论

相关推荐

    通用通信指令命令解析工具V1.1.71 004 SP根据指令类型与功能码切换json

    数据格式转换:工具可以将通信指令转换为不同的数据格式,例如JSON。这对于数据交换和系统集成非常有用。 版本控制:工具版本(如V1.1.71)可能包含特定的功能更新或兼容性改进。 JSON切换的应用 自动化处理:根据...

    EchartDemo.zip_.net echart_.net web后台_ASP echart_ASP.NET JSON数据

    在Asp.net框架下,使用Ajax+JSON实现web前后台的数据交换,并利用百度Echart插件在网页前端实现数据可视化。

    Newtonsoft.Json v11.0.2.rar

    在做开发的时候,很多数据交换都是以json格式传输的。而使用Json的时候,我们很多时候会涉及到几个序列化对象的使用:DataContractJsonSerializer,JavaScriptSerializer 和 Json.NET即Newtonsoft.Json。大多数人都会...

    json4sapnw:SAP ABAP的另一个JSON扩展-开源

    这是一个SAP插件,用于处理SAP ABAP程序中的JSON数据。 它位于客户交换名称空间/ CEX /中,并且必须作为SAP传输请求进行安装。 该插件支持面向对象的JSON方法,以处理深度的结构化JSON数据。 支持从SAP数据对象构建...

    Fill the Online Form C from json-crx插件

    JSON格式是标准的Web交换格式,其文本清晰易读。 它可以轻松地复制,保存,修改和阅读。 我建议首先在真实C表格的副本上尝试一个简单的示例:1.首先,从Chrome WebStore安装扩展。 点击按钮“添加到Chrome”。 2.您...

    最效率的.NET网站开发框架

    强大的动态生成功能,有效地进行页面动态生成,取、赋值,数据格式化等等.大大减少开发工作量. 跨语言支持(.Net,Java,……),只需实现数据接口就可以在任何平台和数据框架下使用. 提供Smart UI前台框架无缝结合的...

    LitJson.unitypackage

    JSON是一种轻量级的数据交换格式。它基于ECMAScript(w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,...

    说说JSON和JSONP 也许你会豁然开朗

    前言 由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能... 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不

    joss:JOSS可以序列化几乎所有JavaScript数据类型和数据结构,因此可以在浏览器和服务器(Deno或Node.js)之间无缝交换数据。

    JS开放序列化方案(JOSS) 以开放的二进制格式序列化JavaScript数据,以在JavaScript运行时环境之间无缝交换结构化数据。 与浏览器,Deno和Node.js兼容。 序列化几乎所有固有JavaScript数据类型和数据结构,包括非...

    JavaScript_JQuery_CSS_CSS_DIV漂亮的实例123个

    47. jquery版自动滚动图片动画特效插件可处理图片JSON数据源 48. jQuery电子商务网站产品展示插件之仿苏宁易购商城产品图展示特效 49. jquery相册播放器插件实现无序图片列表转换成有序并播放 50. jQuery移动网页...

    安卓Android快递代拿跑腿APP设计可升级Studio源码.7z

    在数据通信方面,服务器和客户端之间的数据交换采用XML格式来传输查询的记录集,而单个对象信息则使用json格式进行传输,既保证了数据传输的灵活性,又提高了处理效率。 人人快递APP主要涵盖发件和接件两大核心模块...

    google-gson-2.2.4.zip

    Android 平台上最常用的类库有 Gson 文本形式的数据交换格式插件。gson-2.2.4.jar,gson-2.2.4-javadoc.jar,gson-2.2.4-sources.jar

    安卓Android初中生体育私教平台app可导入Studio源码带文档.7z

    在数据通信方面,服务器与客户端之间的数据交换采用XML格式,主要用于传输查询的记录集;而单个对象信息的传输则采用json格式,更加轻便高效。 系统功能主要包括以下几个方面: 用户登录与注册:体育私教、学生...

    -Fourth-Estate-Newswire-Publisher:第四庄园Newswire出版商Newswire wordpress插件

    Fourth Estate的新闻内容管理系统支持IPTC的行业标准ninjs( ),该标准将新闻内容的表示形式标准化为JSON,这是一种轻量级,易于解析的数据交换格式。 Newswire Publisher插件还将使WordPress的多个授权实例可

    基于JQuery 的自动完成功能的实现

    当客户在利用Goolge 或Baidu 搜索引擎在网上搜索信息时,自动完成功能给...统的制定年业务计划模块为例, 详细介绍通过JQuery-aucomplete 插件和基于文本的数据交换格式JSON 实现基于 JQuery 的自动完成功能的方法。

    swap-cookies:一个WebExtension插件,用于交换cookie,允许同时使用多个帐户登录

    这样,您只需单击几下即可在一个网站的两个帐户之间进行交换,而无需执行注销或打开私人浏览会话并再次登录的过程。 它适用于该网站的所有打开的选项卡(并且共享相同的cookie存储,例如,私有窗口不受普通窗口中...

    Struts2和Ajax数据交互示例详解

    我们从Web 2.0的随波逐流,Ajax的大放异彩说起,Struts2框架自己整合了对Ajax的原生支持(struts 2.1.7+,之前的版本可以通过插件实现),框架的整合只是使得JSON的创建变得异常简单,并且可以简单的融入到Struts2...

    Simple Facebook Sign-In v2.2

    ● 跨平台游戏和应用程序的跨平台用户身份验证● 无插件,无第三方库,无依赖● 对建筑规模没有影响● 客户端-服务器应用程序更加安全(在客户端获取访问令牌,在服务器上获取所有用户数据以避免篡改)● JSON Web...

    JavaScript_JQuery_CSS_DIV漂亮的实例

    47. jquery版自动滚动图片动画特效插件可处理图片JSON数据源 48. jQuery电子商务网站产品展示插件之仿苏宁易购商城产品图展示特效 49. jquery相册播放器插件实现无序图片列表转换成有序并播放 50. jQuery移动网页...

Global site tag (gtag.js) - Google Analytics