ssh框架的项目,使用xml配置(之前没有用到注解),想用@JSON(serialize=false)注明一些关联对象不转换JSON
已在Job类的关联对象的get方法上都写上了@JSON(serialize=false),但出错了,而最奇怪的是另一个Account类却成功了,而且Account采用的也是把关联对象全部注掉的方法
问题类Job
<!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility><w:DontGrowAutofit/><w:BalanceSingleByteDoubleByteWidth/><w:DoNotExpandShiftReturn/><w:UseFELayout/></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
<!--[if gte mso 9]><xml><w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="156" ><w:LsdException Locked="false" Priority="99" Name="Normal" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 1" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 6" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 7" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 8" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 9" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 1" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 6" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 7" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 8" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 9" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 1" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 6" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 7" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 8" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 9" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Normal Indent" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="footnote text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="annotation text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="header" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="footer" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index heading" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="caption" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="table of figures" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="envelope address" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="envelope return" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="footnote reference" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="annotation reference" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="line number" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="page number" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="endnote reference" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="endnote text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="table of authorities" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="macro" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toa heading" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Title" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Closing" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Signature" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Default Paragraph Font" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text Indent" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Message Header" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Subtitle" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Salutation" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Date" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text First Indent" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text First Indent 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Note Heading" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text Indent 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text Indent 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Block Text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Hyperlink" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="FollowedHyperlink" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Strong" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Emphasis" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Document Map" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Plain Text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="E-mail Signature" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Normal (Web)" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Acronym" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Address" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Cite" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Code" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Definition" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Keyboard" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Preformatted" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Sample" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Typewriter" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Variable" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Normal Table" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="annotation subject" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="No List" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Balloon Text" ></w:LsdException></w:LatentStyles></xml><![endif]-->
<!--[if gte mso 9]><xml><w:WordDocument><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery><w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery><w:DocumentKind>DocumentNotSpecified</w:DocumentKind><w:DrawingGridVerticalSpacing>7.8</w:DrawingGridVerticalSpacing><w:View>Normal</w:View><w:Compatibility><w:DontGrowAutofit/><w:BalanceSingleByteDoubleByteWidth/><w:DoNotExpandShiftReturn/><w:UseFELayout/></w:Compatibility><w:Zoom>0</w:Zoom></w:WordDocument></xml><![endif]-->
<!--[if gte mso 9]><xml><w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true" DefSemiHidden="true" DefQFormat="false" DefPriority="99" LatentStyleCount="156" ><w:LsdException Locked="false" Priority="99" Name="Normal" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 1" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 6" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 7" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 8" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="heading 9" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 1" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 6" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 7" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 8" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index 9" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 1" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 6" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 7" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 8" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toc 9" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Normal Indent" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="footnote text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="annotation text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="header" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="footer" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="index heading" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="caption" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="table of figures" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="envelope address" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="envelope return" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="footnote reference" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="annotation reference" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="line number" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="page number" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="endnote reference" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="endnote text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="table of authorities" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="macro" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="toa heading" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Bullet 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Number 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Title" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Closing" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Signature" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Default Paragraph Font" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text Indent" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 4" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="List Continue 5" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Message Header" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Subtitle" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Salutation" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Date" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text First Indent" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text First Indent 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Note Heading" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text Indent 2" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Body Text Indent 3" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Block Text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Hyperlink" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="FollowedHyperlink" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Strong" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Emphasis" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Document Map" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Plain Text" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="E-mail Signature" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Normal (Web)" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Acronym" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Address" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Cite" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Code" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Definition" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Keyboard" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Preformatted" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Sample" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Typewriter" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="HTML Variable" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Normal Table" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="annotation subject" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="No List" ></w:LsdException><w:LsdException Locked="false" Priority="99" Name="Balloon Text" ></w:LsdException></w:LatentStyles></xml><![endif]-->
public class Job implements java.io.Serializable { private String id; private String jobtitle; private String jobdesc; private Set<UserInfo> userInfos; /**省略GET/SET*/ @JSON(serialize=false) public Set<UserInfo> getUserInfos() { return userInfos; } public void setUserInfos(Set<UserInfo> userInfos) { this.userInfos = userInfos; } }
Account与上面的基本一致,我把所有的实体对象和集合都=false,只留下Double、String这些简单的类型
我把这两个类都写在了一个最简单的Action中
public String textAction() throws{ account = accountService.getByID("123456"); job = jobService.getByID("123465"); return SUCCESS; }
然后在struts.xml修改返回值测试,一次是返回account,一次是返回job
<action name="textAction" class="webAction" method="textAction"> <result name="success" type="json"> <param name="includeProperties">account.*</param> <!-- <param name="includeProperties">job.*</param> --> </result> </action>
结果返回account的时候成功了,但返回job的时候却报错,而且我发现转换job的时候,在控制台不断出现sql查询语句,而account没有,因此我认为是job的@JSON(serialize=false)不生效,导致转换job时去寻找@JSON(serialize=false)下的对象。
其实昨天也出现过account的@JSON(serialize=false)失效的情况,一直解决不了,但今天继续搞的时候却可以了,当我以为其他实体也能采用这个方法的时候,却发现只有account的成功,其他的全出错了- -!而且都是上面的情况,只有account不输出sql查询,其他的全都一直查,查查,像下面错误的deptgroup,其实是job关联的account下的dept里的对象。。。。(查询过生成的class文件,确定里面有些上@JSON......)
错误信息
org.hibernate.event.def.DefaultLoadEventListener onLoad
信息: Error performing load command
org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [com.bean.Deptgroup#307]
at org.hibernate.impl.SessionFactoryImpl$2.handleEntityNotFound(SessionFactoryImpl.java:419)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:171)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:223)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:126)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:906)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:874)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:590)
at org.hibernate.type.EntityType.resolve(EntityType.java:412)
at org.hibernate.type.EntityType.nullSafeGet(EntityType.java:227)
相关推荐
例如,`@JSONField(name="project_id", serialize=false) private final Long ProjectID`,如果想让`ProjectID`在序列化时不被包含,就需要在对应的getter方法上使用该注解。 此外,对于int类型的字段,如果不设置...
@JSON(serialize=false) public User getUser() { return this.user; } @JSON(format="yyyy-MM-dd") public Date getStartDate() { return this.startDate; } ``` 这些注解可以帮助开发者更灵活地控制序列化过程...
在Struts2中,我们可以使用JQuery的Ajax方法(如`$.ajax()`或`$.post()`)发送异步请求,提交表单数据到服务器,同时获取JSON响应。 整合步骤如下: 1. **配置Struts2**: 首先,确保你的项目已经引入了Struts2的...
在实际开发中,为了测试Struts2返回JSON格式的数据,可以创建一个简单的Action,设置返回值,并在前端使用AJAX请求来接收这个JSON数据。例如,使用jQuery的$.ajax()方法进行请求,然后通过JSON.parse()解析返回的...
- 如果不希望某个属性被序列化到JSON,可以使用`@JSON(serialize=false)`。 - 对于日期,可以使用`@JSON(format="yyyy-MM-dd")`来指定日期的格式。 4. **在Action中处理逻辑**: - 定义一个Action类,例如`...
1. 如果不想序列化某个以`get`开头的方法,可以添加`@JSON(serialize=false)`注解。 2. 通过`@JSON(name="newName")`注解,可以改变返回JSON数据中的属性名称。 3. 使用`@JSON(format="yyyy-MM-dd'T'HH:mm:ss")`可以...
在这个例子中,`@JSON(serialize=false)`注解告诉插件不要序列化`getUser`方法的返回值,而`@JSON(format="yyyy-MM-dd")`则用于指定日期字段`startDate`的格式。 总结来说,解决Struts2中JSON相互引用死循环的问题...
在Struts2中,如果没有使用Struts2-Json-Plugin,开发人员需要手动利用如XStream、Google Gson或Jackson等工具将Java对象转换为JSON字符串,然后将其写入Response。这样做不仅需要编写更多的代码,还需要关注字符集...
类的`@JSONField(serialize=false)`注解来忽略特定字段在序列化过程中的处理,防止该字段导致的循环引用。例如: ```java public class User { private String name; @JSONField(serialize=false) private User ...
在现代Web开发中,异步数据交换通常使用JSON(JavaScript Object Notation)格式,因为JSON轻量级、易于解析,并且在前后端之间传递数据非常高效。在本教程中,我们将深入探讨如何将Struts2与JSON整合,实现Ajax调用...
@JSONField(serialize=false) private String secret; // 在序列化时不包含此字段 @JSONField( deserialize=false) private String nickname; // 在反序列化时忽略此字段 } ``` 五、安全使用Fastjson 虽然...
- 使用`@JSONField`注解可以控制字段的序列化和反序列化,如忽略某个字段`@JSONField(serialize=false)` 4. **映射自定义类** - 自定义类的字段名可能与JSON键不一致,可以使用`@JSONField(name="json_key")`指定...
例如,你可以实现`JSONAware`接口来自定义JSON表示,或者使用`@JSONField(serialize=false)`注解来忽略某个字段。 **总结** jsonlib作为Java中的JSON处理库,提供了强大的功能,使得JSON数据的处理变得简单而高效。...
例如,你可以通过注解`@JsonField(serialize = false)`来忽略某个字段不进行序列化。 6. 错误处理: 在处理JSON数据时,可能会遇到格式错误、类型不匹配等问题。JSONJar会抛出异常,如`JsonException`,你需要捕获...
可以使用`@JSONField(serialize=false, deserialize=false)`注解来忽略这些字段。 8. **处理泛型** - Fastjson支持泛型,可以通过类型参数获取正确的Java类型,例如`List<User>`。 9. **自定义序列化和反序列化**...
- 可以通过`@JSONField(serialize=false)`注解来忽略某些字段不进行序列化。 - 使用`JSONFilter`接口可以自定义序列化和反序列化的过滤逻辑。 5. **性能优化:** - Fastjson在设计时就注重了性能,它的性能表现...
String jsonString = json.serialize(obj); // 反序列化 MyJavaObject deserializedObj = (MyJavaObject) json.deserialize(jsonString, MyJavaObject.class); ``` 5. **org.springframework.boot内置库** ...
var jsonString = serializer.Serialize(hashtable); ``` 4. **Newtonsoft.Json** 序列化`Hashtable`到JSON: ```csharp var jsonString = JsonConvert.SerializeObject(hashtable); ``` 在压缩包文件名列表中,`...
此外,Fastjson 还提供了注解支持,如`@JSONField(serialize=false)` 可以控制字段是否序列化,`@JSONField(name="jsonName")` 可以改变字段在 JSON 中的名称,这在对接外部接口或者数据交换时非常有用。 在提供的...
2. **忽略字段**:使用`@JSONField(serialize=false, deserialize=false)`注解可忽略特定字段。 3. **日期格式化**:通过`@JSONField(format="yyyy-MM-dd HH:mm:ss")`设置日期格式。 4. **JSONPath**:Fastjson...