如何从控制器读取作为排序列表返回的JavaScript对象的值

时间:2013-05-31 14:30:41

标签: javascript jquery json jsp dom

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

var foo = '${entityTypes}';

当我尝试使用for进行循环并读取值时。但是,它会读取可用字符串的每个字符。我尝试过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]);
    }
}

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我设法完成了这项工作。我发现它是VeXii评论的字符串。谢谢Vexxi。由于它是一个字符串,我使用substr删除不需要的字符。

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

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

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

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

感谢您的评论。这帮我解决了这个问题。