日期:2014-05-17  浏览次数:20677 次

大大们,求助呀!struts2返回json的问题
struts2返回json串在jsp页面的处理:
直接上代码了:
action:中

private String JsonString;
public String getJsonString() {
return JsonString;
}
public void setJsonString(String jsonString) {
JsonString = jsonString;
}
下面是方法中的代码:
JSONArray jsonArray = JSONArray.fromObject(list_dir);
this.JsonString = jsonArray.toString();


struts2中的配置:

<package name="test.action" extends="json-default"  namespace="/sm">
<action name="scanPointPath" class="smAction" method="scanPointPath" >
<result name="success" type="json">
   <param name="includeProperties">JsonString</param>
</result>
</action> 


请求时候用的ajax请求,代码如下:

$.ajax( {
type : "POST",
url : "scanPointPath.action",
    dataType:"json",   
data : {
         "postValue":leavePath
},
aysnc : false,
success : function(data) {
alert("dddd"+data);                       },
error : function() {
alert("cuowu");
}
});


出现的问题:为什么我在前台得到的不是json格式的字符串?在前台弹出的是【object Object】

请问各位大大为什么会出现这个问题?
还有:js中["xxxxxx","yyyyy"] 怎么处理成list集合?
备注:我通过struts返回给jsp的就是类似上面那种json格式的字符串。 

------解决方案--------------------
不知道JSON返回到JSP的东西是什么,你可以先判断一下这个【object Object】是什么类型?

 success : function(data) {
                        alert("dddd"+data.constructor);//这里可以输出你返回的json的类型
 },


对于js的["xxxxxx","yyyyy"],这个在js里面就是数组。
数组你懂吧?
在js里面可以进行循环:

var arr = ["xxxxxx","yyyyy"];
for(var i = 0, j = arr.length; i<j; i++){
    alert(arr[i]);
}


对于Structs2,我一般是这样配置的:

<action name="scanPointPath" class="smAction" method="scanPointPath" >
<!-- 对于返回json 的action,我这里从来不写东西-->
        </action> 

上面的xml配置我没有写
           &nb