如何使用 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));
}
});
我在控制台中收到 [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));
}
});