解决json结合struts2时,Class org.apache.struts2.json.JSONWriter can not access a member of * 的问题详解编程语言

在使用json的时候,产生的一个错误,查了一下资料,原来是struts2和json一起使用的时候,才产生的问题,虽然不影响程序的运行,但是总是会有一些异常的日志产生,并且,这个也会增加程序的负担。

原因:

struts2的action里面的数据转换成json数据时,会将提供了get方法的属性都串行化输出JSON到客户端。有的时候,很多属性并不能串行 化成json数据。这时还进行强行转换就会出现这样的异常。

我的代码:

    private static final long serialVersionUID = 1L; 
    private Logger logger=Logger.getLogger(AuthAction.class); 
    private AuthService authService; 
    private RoleService roleService; 
    private HttpServletRequest request; 
    private HttpServletResponse response; 
 
    private int authId; 
    private String authName; 
    private String authPath; 
    private int parentId; 
    private String authDesc;

在action里面,我要输出到页面的是第二段里面的authid等字段,上面的一段代码中,通过spring,注入了authService 和 roleService,并且都有get方法。

解决方法:

在不能串行化到json的属性相应的get方法前加一条json标记 @JSON(serialize=false)。告诉json不需要转化这个属性。或者根本不写这个get方法。

因为用的是setter-getter方式注入,不能不写get方法,就在下面两个getXXXService方法前加上 @JSON(serialize=false) ,这样控制台就不会报错了,也减少了json输出时候的负担。

 

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/11554.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论