如何从控制器读取作为排序列表返回的JavaScript对象的值
我从我的控制器到jsp页面得到一个排序列表。我想用javascript处理这个问题如何从控制器读取作为排序列表返回的JavaScript对象的值,javascript,jquery,json,jsp,dom,Javascript,Jquery,Json,Jsp,Dom,我从我的控制器到jsp页面得到一个排序列表。我想用javascript处理这个问题 var foo = '${entityTypes}'; 当我尝试使用for-in循环这个函数并读取值时。但是,它读取可用字符串的每个字符。我也尝试了json解析和stringify,但仍然得到了相同的结果 var foo = '${entityTypes}'; alert(foo); var str = JSON.stringify(foo); var obj1 = JSON.parse(str); ale
var foo = '${entityTypes}';
当我尝试使用for-in循环这个函数并读取值时。但是,它读取可用字符串的每个字符。我也尝试了json解析和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]);
}
}
由于Java列表不会自动转换为JSON格式,所以foo的值为entityList.toString。您需要做的是,自己将Java列表转换为JSON格式。
但是在控制器中转换entityList要便宜得多。例如,一些不错的Java库可以进行实体到JSON的转换。我成功地完成了这项工作。我在VeXii的评论中发现它是一个字符串。谢谢你。因为它是一个字符串,所以我使用substr删除不需要的字符
str = foo.substr(0, foo.length-1);
obj = str.substr(1);
这将删除第一个和最后一个字符。这意味着方括号打开和关闭
然后我使用split方法来获得我想要的字符串。我仍然有一个问题,因为我的字符串最后一个字符是冒号。我再次使用可用的spring方法删除了冒号
var arr = obj.split(',');
谢谢你的评论。这帮助我解决了这个问题。列表在哪里?foo的值是一个字符串,如果您循环一个字符串,您将得到每个有意义的字符。列表是我分配给foo的。它是“${entityTypes}”。我想我可以使用分隔符将这个字符串转换为数组。感谢您唤醒我:Entitytypes是从后端控制器到jsp页面的列表。entityList不是用于字符串的javascript对象。谢谢你的建议。我有一些想法。