如何在 JavaScript 中遍历 Java List<Object[]> 对象?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/20499083/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to loop through Java List<Object[]> object in JavaScript?
提问by Dinesh-SriLanka
Controller
控制器
List<Object[]> permissionList = new ArrayList();
//fill permissionList with list of object ayyays (objetct[0] = permission id, object[1] = permission)
model.addAttribute("permissionList", permissionList);
jsp
jsp
var allpermissionList = "${permissionList}";
$.each(allpermissionList, function (index, av) {
var id = av[0];
vat name=av[1];
//set values to div element
});
i can't loop through my list with js $each()... av[0] and av[1] cannot cannot obtain.
我无法使用 js $each() 遍历我的列表... av[0] 和 av[1] 无法获得。
采纳答案by Christophe L
Java code runs on the server. JavaScript runs on the client. They are very different languages and do not interoperate out of the box. When you need to pass data from Java to JavaScript, the easiest is to serialize it to JSON using Hymansonfor example.
Java 代码在服务器上运行。JavaScript 在客户端上运行。它们是非常不同的语言,并且不能开箱即用地进行互操作。当您需要将数据从 Java 传递到 JavaScript 时,最简单的方法是使用Hymanson将其序列化为 JSON 。
import com.fasterxml.Hymanson.databind.ObjectMapper;
ObjectMapper om = new ObjectMapper();
model.addAttribute("permissionList", om.writeValueAsString(permissionList));
and in the JSP:
在 JSP 中:
var allpermissionList = ${permissionList};
Note that not all Java object are serializable to JSON so the objects in your list should be simple Java types (String, Number...) or POJOs.
请注意,并非所有 Java 对象都可序列化为 JSON,因此列表中的对象应该是简单的 Java 类型(字符串、数字...)或 POJO。
回答by Dinesh-SriLanka
I got resolved .. thanks all.
我得到了解决..谢谢大家。
Controller
控制器
List<Object[]> permissionList = new ArrayList();
// load values
List<Map<String, String>> listAll = new ArrayList<>();
if (permissionList != null && permissionList.size() > 0) {
for (Object[] objects : allPermissions) {
Map map = new HashMap();
map.put("id",objects[0]);
map.put("permName", objects[1]);
listAll.add(map);
}
}
ObjectMapper mapper = new ObjectMapper();
String permissionList = mapper.writeValueAsString(listAll);
model.addAttribute("permissionList", permissionList);
Jsp
jsp
var allpermissionList = eval(${permissionList});
$.each(allpermissionList, function (index, permission) {
var id = permission.id;
var name = permission.name;
});