解决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输出时候的负担。

原文地址:https://www.cnblogs.com/juepei/p/3802346.html