如何使用 Struts2 Ajax 调用获取原始 JSON 数据

How to get raw JSON data using Struts2 Ajax call

我在控制台中收到 [object Object] 响应,而我希望得到完整的 JSON。

根据我的操作 class :

public String getDensityData(){
    SessionFactory sf = (SessionFactory) ctx.getAttribute("SessionFactory");
    ProductDAO product = new ProductDAOImpl(sf);
    List<DensityGroup> densityList = product.getDensity();
      Gson gson = new Gson();
      densityjson = gson.toJson(densityList);
      System.out.println("JSON: "+densityjson);
    return "success";
}

Struts.xml

<package name="json" namespace="/" extends="json-default">
    <action name="getJSON" class="com.bmm.action.ProductAction" method="getDensityData">
        <param name="noCache">true</param>
        <param name="excludeNullProperties">true</param>
        <param name="root">densityjson</param>
        <result name="success" type="json">/product_master.jsp</result>
</action>  
</package>

JSP:

$.ajax({
    type: "POST",
    url: '<s:url namespace="/" action="getJSON"/>',
    data: "json",
    success: function(data){
    console.log(""+data);
    }
});

如果您希望从响应中得到 JSON,您应该指定 dataType 属性。 JSON 是 javascript Object,如果您需要打印它,请使用 JSON.stringify().

$.ajax({
    type: "GET",
    url: '<s:url namespace="/" action="getJSON"/>',
    dataType: "json",
    success: function(data){
        console.log(JSON.stringify(data));
    }
});