简体   繁体   中英

JSON object returns undefined value

I am receiving a JSON object from a http call and I am trying to extract values from it. JSON object contains:

data:{"userid":"007", "role":"spy"}

I use the following code to assign role property to another variable followed by some console log checks:

    currentUserRole = data.role;    
    console.log("type of data: "+typeof(data));
    console.log("data: "+JSON.stringify(data));
    console.log("user role: "+currentUserRole);

The logs produce:

type of data: object
data: [{"userid":"007", "role":"spy"}]
user role: undefined

Also I tried another method of assignment:

currentUserRole = data['role'];

But currentUserRole remains undefined . How can I set a property of a JSON object to a variable?

According to the second line of your log (the call to JSON.stringify() ), your data is actually an array of objects:

[{"userid":"007", "role":"spy"}]

If it was an object as you are expecting, it would look like this:

{"userid":"007", "role":"spy"}

(the difference is subtle, but notice the missing square brackets)

Try this:

currentUserRole = data[0].role;

Obviously in production-ready code, you probably need to do some extra sanity checking to ensure that data is in fact an array containing at least one element.

It is a list. Try data[0].role

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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