Struts2如何返回JSON响应

我目前正在创建一个Web应用程序,用户可以从数据库中获取标记为JSON,

这是我的struts动作

public String execute(){ Gson gson = new Gson(); String tagsAsJson = gson.toJson(audioTaggingService.findTagsByName(q)); System.out.println(tagsAsJson); return "success"; } 

更新:

tagsAsJson已经是JSON格式,我想要的只是返回它,而不是整个类动作本身。

它返回这样的东西

这是我想要返回给用户的数据

 [{"id":2,"name":"Dubstep","description":"Dub wob wob"},{"id":3,"name":"BoysIIMen","description":"A 1990s Boy Band"},{"id":4,"name":"Sylenth1","description":"A VST Plugin for FLStudio "}] 

如何将tagsAsJson作为ar JSON响应返回? 因为JSON响应将由客户端代码使用。

    使用Struts “JSON插件” 。

    很简单,三个步骤:

    只需将它包含在您的maven项目中即可

      org.apache.struts struts2-json-plugin ${version.struts2}  

    声明您希望作为JSON字符串返回的字段,如操作字段,提供getter和setter。

     public class Struts2Action extends ActionSupport { private String jsonString; public String execute() { Gson gson = new Gson(); jsonString = gson.toJson(audioTaggingService.findTagsByName(q)); return "success"; } public String getJsonString() { return jsonString; } public void setJsonString(String jsonString) { this.jsonString = jsonString; } } 

    最后,将它放在您的XML中:

       true true jsonString   

    注意jsonString 。 这段xml告诉Struts2这个确切的属性应该被视为JSON序列化的根。 因此,只有命名属性(以及下面,如果它是地图或任何地方)将在JSON响应中返回。

    感谢JSON插件,内容类型将是正确的。

    “JSON插件”文档在这里: http : //struts.apache.org/release/2.3.x/docs/json-plugin.html

    尝试使用响应的PrintWriter。

    Java的

      public String execute() { Gson gson = new Gson(); String jsonString = gson.toJson(audioTaggingService.findTagsByName(q)); HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/json"); response.getWriter().write(jsonString ); return null; } 

    在Action类中放置下面的代码。

      public class Struts2Action extends ActionSupport { public String jsonString=""; public String execute() { Gson gson = new Gson(); jsonString = gson.toJson(audioTaggingService.findTagsByName(q)); System.out.println(jsonString); return "success"; } } 

    在JSP中放下代码

     <%@ taglib prefix="s" uri="/struts-tags" %>  Struts Rais 

    如果您想操作JSON数据,那么这将打印JSON数据,您可以在var 标记中捕获数据并访问整个页面中的变量。

    要返回JSON响应,您需要在项目构建路径中包含struts2-json-plugin-2.xxjar文件。您需要设置package extends =“json-default”结果类型为json

    struts2-json-plugin-2.xxjar文件允许您将具有setter的Action类属性序列化为JSON对象。

    从maven获取jar依赖项

        org.apache.struts struts2-core 2.1.8   org.apache.struts struts2-json-plugin 2.1.8  

    您可以从此链接获得完整的帮助……

    Struts 2和JSON响应