0

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

2

3 Answers 3

1

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.

Sign up to request clarification or add additional context in comments.

1 Comment

Hi Thanks for the replay.It's working fine but i have one doubt ..by using this output i want to generate orgChart .means for example i want to read orgObject["root"] under root i got some users "root":["[email protected]","[email protected]","[email protected]"] now when i read firstnode [email protected] i want to check any json object is there with bhanu if it is there i want to fetch those users how can i do this
0

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
}

Comments

0

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.

2 Comments

Hi Thanks for the replay small doubt ..i want to read first what is the data in "root" then remaning data how can i do this..
You may use .length property to find out is it an array or object. For example result.length. If it returns something then it is an array.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.