js中用dwr如何获取java中List<List<DATA>>的值
如果List<String, List<string>> 里面的List中数据是string格式我可以通过两个for循环获取到string的值,像下面写的:
function A(data){
for(var key in data){
for(var i=0;i<key[i].length;i++){
alert(data[key][i]);
}
}
}
但是如果换成List<List<DATA>> ,DATA是一个对象,DATA里包含多个数据,用上面的方法就获取不到值了
public class DATA{
private int long;
private int height;
}
怎样通过dwr获取DATA中long的值呢?
[解决办法]
用firebug监视下请求返回的json字符串格式,用点操作符直接取就行了,根本不需要for来遍历
[解决办法]
本帖最后由 showbo 于 2013-07-11 14:11:24 编辑 不用firebug也行,导入json2.js序列化json对象为对应的字符串
<script src="http://www.coding123.net/rardownload/20130106/20130106170832648.js"></script>
<script>
function A(data){
alert( JSON.stringify(data))//输出对应的JSON字符串,自己看结构来获取需要的数据就行了
}
</script>
[解决办法]
Grandelist只添加了一个List<data>,只有一项而已(猜测为数组对象),长度当然为1
直接return JSONArray.fromObject(listguiyuan);应该就是4了
不是告诉你了用json2.js将json序列化为对应的json字符串看结构,要不结构不知道当然无法取
[解决办法]
有个问题啊,如果我改成return JSONArray.fromObject(listguiyuan),那么最外面一层我定义的ArrayList Grandelist = new ArrayList(); 岂不是没有用了啊
[解决办法]
如果改成返回List的话呢?还是读不到值,怎么办啊,高手快出现吧~~~
public List gatdata(int time){
List<DATA> listguiyuan = new ArrayList<data>();
//组装数据
DATA guidata1= new DATA(19,11);
DATA guidata2= new DATA(17,22);
DATA guidata3= new DATA(79,33);
DATA guidata4= new DATA(9,44);
listguiyuan.add(guidata1);
listguiyuan.add(guidata2);
listguiyuan.add(guidata3);
listguiyuan.add(guidata4);
ArrayList Grandelist = new ArrayList();
Grandelist.add(listguiyuan);
return Grandelist;
}
[解决办法]
已经和你说了,要知道JSON的结构,看#5的怎么知道结构,知道结构了就容易读取了
要不自己找java的内容看返回这种类型的json数据结构是怎么样的