不知道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配置我没有写
            <result name="success" type="json">
               <param name="includeProperties">JsonString</param>
            </result>
我会在java的aciton的方法中,采用response得到PrintWriter,然后用它打回json到前台。

解决方案 »

  1.   

    Struts2返回JSON的话,Action的方法不需要返回值
    public void loginList(){
    DistrictBiz db = new DistrictBizImpl();
    List<District> listD =db.getAllDistrict();
    //使用JSON工具类打印JSON字符串
    JsonWriteUtil.writeJson(resp, listD);
    }
      

  2.   

    附带工具类/**
     * 把对象转换成JSON后,再进行打印
     * @param obj
     */
    public static void writeJson(HttpServletResponse response, Object obj) {
    String str = JSON.toJSONString(obj);
    try {
    response.setContentType("text/html;charset=utf-8");
    response.getWriter().write(str);
    response.getWriter().flush();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
      

  3.   

    struts2配置文件里面的package要继承json-default

    <package name="json" namespace="/" extends="json-default">
      

  4.   

    得到的是一个json对象,在前端用方法parseJSON()就可以解析出来,再一层一层的按名字取出来就行了
      

  5.   


    按您说的真的成功了,谢谢哈,再请教一个小的问题:
    function success(data){
    var arr = data;  //把获取到的json字符串赋值给arr
           //动态的生成表格的行
     var tab = document.getElementById("autoTable");
     //删除现表格中的所有数据
     var rowNum = tab.rows.length;
     for(var i=0;i<rowNum;i++ ){
         tab.deleteRow(i);
             rowNum=rowNum-1;
             i=i-1;
     }
    for(var i=0;i<arr.length;i++){
    //截取字符串
    var initseftPath = arr[i];
            var subPath = arr[i].substring(arr[i].lastIndexOf("\\")+1) //截取路径,保留d:\aa\bb最后一个'\'后的内容 即  bb
    var newTr =  tab.insertRow(-1);
    var newTd0 = newTr.insertCell(0);
    var newTd1 = newTr.insertCell(1);
    newTd0.innerHTML = '<input type=checkbox id="box4">';
    newTd1.innerHTML= '<a href="#" style="text-decoration: underline;color: blue;font-size: 14px"onclick="show(this)" selfPath="<%=initseftPath%>"'+subPath+'</a>';
    }
    }
    我动态生成的第二个单元格中是一个超链接的形式,在超链接的位置我想显示截取后的内容,但是完整的内容我想赋给这个超链接(a标签)的一个属性保存,但是不知道为什么,我这个属性的值就是保存不了,按我上面写得代码,当我获取selfPath属性时候获取到的是="<%=initseftPath%>,请问我怎么样才能获取到  initselfPath的内容?我的代码该怎么修改?