js中用dwr如何获取java中List>的值

码易通 2013-07-11 11:31:33
如果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的值呢?
...全文
386 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
码易通 2013-07-26
  • 打赏
  • 举报
回复
谢谢你,问题已经解决,用的你的方法
  • 打赏
  • 举报
回复
已经和你说了,要知道JSON的结构,看#5的怎么知道结构,知道结构了就容易读取了 要不自己找java的内容看返回这种类型的json数据结构是怎么样的
fengheooooo 2013-07-11
  • 打赏
  • 举报
回复
如果改成返回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;
     
}
fengheooooo 2013-07-11
  • 打赏
  • 举报
回复
有个问题啊,如果我改成return JSONArray.fromObject(listguiyuan),那么最外面一层我定义的ArrayList Grandelist = new ArrayList(); 岂不是没有用了啊
码易通 2013-07-11
  • 打赏
  • 举报
回复
哦,知道了data[i]循环就取到4组值了,谢谢你了~
码易通 2013-07-11
  • 打赏
  • 举报
回复
return JSONArray.fromObject(listguiyuan);是4了,但是还是只能得到第一组数据啊
码易通 2013-07-11
  • 打赏
  • 举报
回复
firebug里获得了4组数据,但是alert( JSON.stringify(data));只得到了第一组数据?怎样得到4组信息呢?而且我想遍历得到4组信息里的long值,求解答啊~~
  • 打赏
  • 举报
回复
Grandelist只添加了一个List<data>,只有一项而已(猜测为数组对象),长度当然为1 直接return JSONArray.fromObject(listguiyuan);应该就是4了 不是告诉你了用json2.js将json序列化为对应的json字符串看结构,要不结构不知道当然无法取
码易通 2013-07-11
  • 打赏
  • 举报
回复
我现在在java里测试是这样写的

public JSONArray 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 JSONArray.fromObject(Grandelist);
	
}
我刚试了你的方法,但是只获得了一组数据,而我在java中传了4组数据,alert(data.length;也是1 ?
  • 打赏
  • 举报
回复
不用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>
码易通 2013-07-11
  • 打赏
  • 举报
回复
我现在测试的时候返回的是JSONArray,里面存了4组list<DATA>,DATA里有不同的long,heigth值,在dwr里测试,只能返回[[Object,Object,Object,Object]],里面取不到值,为什么呢?
码易通 2013-07-11
  • 打赏
  • 举报
回复
怎么用操作符取呢?可以详细说一下吗?
码易通 2013-07-11
  • 打赏
  • 举报
回复
等待高手解答!!
  • 打赏
  • 举报
回复
用firebug监视下请求返回的json字符串格式,用点操作符直接取就行了,根本不需要for来遍历

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧