1

我从控制器到 jsp 页面得到一个排序列表。我想用javascript处理这个。

var foo = '${entityTypes}';

当我尝试使用 for in 循环并读取值时。但是,它会读取可用字符串的每个字符。我也尝试了 json parse 和 stringify,但仍然得到相同的结果。

var foo = '${entityTypes}';
alert(foo);

var str = JSON.stringify(foo);
var obj1 = JSON.parse(str); 
alert(obj1);    

for (var k in obj1) {
    if (obj1.hasOwnProperty(k)) {
        alert("Key is " + k + ", value is " + obj1[k]);
    }
}
4

2 回答 2

0

由于 Java-List 不会自动转换为 JSON 格式,因此foo值为entityList.toString(). 您需要做的是,自己将 Java-List 转换为 JSON 格式。
但是entityList在控制器中转换要便宜得多。例如, gsonjackson是一些不错的 Java 库,它们可以进行实体到 JSON 的转换。

于 2013-05-31T14:45:00.977 回答
0

我设法完成了这件事。根据 VeXii 的评论,我发现它是一个字符串。谢谢Vexxi。因为它是一个字符串,所以我使用 substr 来删除不需要的字符。

    str = foo.substr(0, foo.length-1);
obj = str.substr(1);

这删除了第一个和最后一个字符。这意味着方括号打开和关闭。

然后我使用 split 方法来获取我想要的字符串。我仍然有一个问题,因为我的字符串以冒号作为最后一个字符。我再次使用可用的弹簧方法删除了冒号。

var arr = obj.split(',');

感谢您的意见。这帮助我解决了这个问题。

于 2013-06-03T06:51:02.717 回答