繁体   English   中英

如何从JavaScript中的JSON对象获取数据?

[英]How to fetch data from JSON object in JavaScript?

我正在使用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时,我有一些数据,现在我得到bhanu@gmail.com,我想从Bhanu获取数据在这里我又得到了一些像hari@gmail.com这样的数据我想像这样获取hari的数据我想我该怎么做任何人都可以帮助我

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

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

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

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

结果将是对象或数组。

要遍历对象,可以使用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
}

这是最简单的方法

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]实际上是一个数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM