Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从控制器读取作为排序列表返回的JavaScript对象的值_Javascript_Jquery_Json_Jsp_Dom - Fatal编程技术网

如何从控制器读取作为排序列表返回的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

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

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对象。谢谢你的建议。我有一些想法。