user2767541
user2767541

Reputation: 97

How to fetch data from JSON object in JavaScript?

I am working on SpringMVC. In my controller I create a JSON object and I pass that object to JavaScript. How can I read that object in JavaScript?

My Map object

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 );

At last my Map object has this data:

{
   "Bhanu":["[email protected]","[email protected]","[email protected]"],
   "root":["[email protected]","[email protected]","[email protected]"],
   "hari":["[email protected]","[email protected]","[email protected]"],
   "balu":["[email protected]"]
}

Now I convert this object with GSon:

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

Now I passed this string to JavaScript because this is my Ajax response:

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

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


               }
}

This is working fine but i want to fetch data like this first i want to fetch data from "root" in root i have some data when i read root for example i got [email protected] now i want to fetch the data from Bhanu here i got some data like [email protected] again i want to fetch data for hari like this i want how can i do this any one help me

Upvotes: 0

Views: 20611

Answers (3)

Jules
Jules

Reputation: 15199

Your lists will become javascript arrays, so for example you could use:

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

which should pop up "[email protected]" given your example data.

See How to list the properties of a JavaScript object for details of how to list the keys of your map, should you need this.

Upvotes: 1

Krasimir
Krasimir

Reputation: 13549

Here is the most simple way

var result = {"Bhanu":["[email protected]","[email protected]","[email protected]"],"root":["[email protected]","[email protected]","[email protected]"],"hari":["[email protected]","[email protected]","[email protected]"],"balu":["[email protected]"]};

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

This outputs:

[email protected],[email protected],[email protected]
[email protected],[email protected],[email protected]
[email protected],[email protected],[email protected]
[email protected]

Have in mind that the arrays are actually cast to a string. So result[name] is actually an array.

Upvotes: 0

Emil A.
Emil A.

Reputation: 3445

The result will be either an object or array.

To iterate over objects you can use the for-in loop

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

To iterate over an array you can use a normal loop:

for (var i = 0, ilen = array.length; i < ilen; i += 1) {
    // do something here
}

Upvotes: 0

Related Questions