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

时间:2017-03-21 19:32:22

标签: jquery json ajax jsp struts2

我在控制台中收到[object Object]响应,而我期待一个完整的JSON。

根据我的行动类:

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);
    }
});

1 个答案:

答案 0 :(得分:1)

如果您希望从响应中获取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));
    }
});