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);