日期:2014-05-19  浏览次数:20758 次

action获取json格式的字符串后该如何处理?
js代码是这样写的
JScript code

 var List = new Array();
 List.add("aa");
 List.add("bb");
 List.add("cc");
var i,jsonstr;
        jsonstr="[{";
        for(i=0;i<List.length;i++)
        {
        jsonstr += List[i] + ":" + "\"" + List[i] + "\",";
        }
        jsonstr = jsonstr.substring(0,jsonstr.lastIndexOf(','));
        jsonstr += "}]";
        
    document.form111.action= "secondReviewer/GKS_model2DB?tttt="+jsonstr;
});



Action代码转换成JSON是这样处理的:
Java code

  JSONArray jb = JSONArray.fromObject(tttt);
  System.out.println(jb.getString(0));


结果打印出来的却是{"aa":"aa","bb":"bb","cc":"cc"}
这是怎么回事呢?

------解决方案--------------------
探讨
引用:
引用:
真搞不懂,你要干什么?他组装的就是这样的一个字符串啊!

我只是想把js声明的数组提交到Action中变成java对象的数组或List

确实蛋疼,json你把它想象成一个map你这样 本身就是有问题,你把它的key根value设置成一样,结果必然据是那样

------解决方案--------------------
如果是你的需求,我是这么理解,你需要一个list对象对吧,这里面存储了3个元素分别为aa,bb,cc
那么你传给后台json数据结构应该是{"list":['0':'aa','1':'bb','2':'cc']}
------解决方案--------------------
向深夜奋斗的同志们致敬
------解决方案--------------------
jsonstr += i + ":" + "\"" + List[i] + "\",";



action拿到的字符串没错,只是按你自己的需要,用list、map处理下就行了