如何在 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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 02:22:16  来源:igfitidea点击:

How to loop through Java List<Object[]> object in JavaScript?

javajavascriptjsonlist

提问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;

 });