Unable to access JSON property with “-” dash

I am unable to retrieve a value from a json object when the string has a dash character:

"profile-id":1234, "user_id":6789

If I try to reference the parsed jsonObj.profile-id it returns ReferenceError: "id" is not defined but jsonObj.user_id will return 6789

I don't have a way to modify the values being returned by the external api call and trying to parse the returned string in order to remove dashes will ruin urls, etc., that are passed as well. Help?



jsonObj.profile-id is a subtraction expression (i.e. jsonObj.profile - id).

To access a key that contains characters that cannot appear in an identifier, use brackets:


For ansible, and using hyphen, this worked for me:

    - name: free-ud-ssd-space-in-percent
        var: clusterInfo.json.content["free-ud-ssd-space-in-percent"]

In addition to this answer, note that in Node.js if you access JSON with the array syntax [] all nested JSON keys should follow that syntax

This is the wrong way


and will will give you the 'undefined' error.

This is the correct way



Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.