0

我正在研究 SpringMVC。在我的控制器中,我创建了一个 JSON 对象并将该对象传递给 JavaScript。如何在 JavaScript 中读取该对象?

我的Map对象

Map<String rootNode,List<String>> map = new HashMap<String rootNode,List<String>();
String rootNode = "bhanu";
ArrayList<String> al = new ArrayList<String>();
for( int i = 0; i < UserProfile.size; i++ ) { 
    al.add( userProfile.get( i ) );
}
map.put( userProfile, al );

最后我的Map对象有这个数据:

{
   "Bhanu":["hari@gmail.com","balu@gmail.com","santha@gmail.com"],
   "root":["bhanu@gmail.com","anu@gmail.com","apar@gmail.com"],
   "hari":["bhanuprasad@gmail.com","sravya@gmail.com","mahesh@gmail.com"],
   "balu":["rama@gmail.com"]
}

现在我将此对象转换为GSon

Gson gson = new GSon();
String orgChartUsers = gson.toJson(map);

现在我将此字符串传递给 JavaScript,因为这是我的 Ajax 响应:

function orgUsers( result ) {
    var orgObject = JSON.parse( result );  

         for(var name in result) {
                console.log(name + "=" + result[name]);


               }
}

这工作正常,但我想首先获取这样的数据我想从root 中的“root”获取数据 我在读取 root 时有一些数据,例如我得到bhanu@gmail.com现在我想从Bhanu获取数据在这里,我再次获得了一些数据,例如hari@gmail.com我想像这样为hari获取数据我想要我该怎么做任何人都可以帮助我

4

3 回答 3

1

您的列表将成为 javascript 数组,因此例如您可以使用:

window.alert (orgObject["Bhanu"][0]);

给定您的示例数据,应该会弹出“hari@gmail.com”。

有关如何列出地图键的详细信息,请参阅如何列出 JavaScript 对象的属性(如果需要)。

于 2013-09-11T06:55:13.430 回答
0

结果将是一个对象或数组。

要迭代对象,您可以使用 for-in 循环

for (var key in obj) {
    if(obj.hasOwnProperty(key)) {
        // do something here
    }
}

要遍历数组,您可以使用普通循环:

for (var i = 0, ilen = array.length; i < ilen; i += 1) {
    // do something here
}
于 2013-09-11T06:56:01.560 回答
0

这是最简单的方法

var result = {"Bhanu":["hari@gmail.com","balu@gmail.com","santha@gmail.com"],"root":["bhanu@gmail.com","anu@gmail.com","apar@gmail.com"],"hari":["bhanuprasad@gmail.com","sravya@gmail.com","mahesh@gmail.com"],"balu":["rama@gmail.com"]};

for(var name in result) {
    console.log(name + "=" + result[name]);
}

这输出:

Bhanu=hari@gmail.com,balu@gmail.com,santha@gmail.com
root=bhanu@gmail.com,anu@gmail.com,apar@gmail.com
hari=bhanuprasad@gmail.com,sravya@gmail.com,mahesh@gmail.com
balu=rama@gmail.com

请记住,数组实际上是转换为字符串的。所以result[name]实际上是一个数组。

于 2013-09-11T06:56:02.780 回答