Search code examples
javascriptjsonjavascript-objects

JavaScript/JSON: Get unknown property of an object


If I have a JSON object like this:

{
    "message": {
        "name": { "stringLengthTooShort": "blub" }
    }
}

The name of the property (here) stringLengthTooShort is changing every time, how could I simply just get the child property of name with JS? At the moment I have message.name but how could I get now the child of it?


Solution

  • if it's always the first property of message.name, you could do something like:

    var keys = [];
    for (var l in message.name) {
      if (message.name.hasOwnProperty(l)){
        keys.push(l);
      }
    }
    //=>first property value should now be in message.name[keys[0]]);
    //  (its label is keys[0])
    

    Edit: nine years after this answer all modern browsers support es20xx, so it's safe to use:

    const obj = {
        "message": {
            "name": { "stringLengthTooShort": "blub" }
        }
    };
    
    console.log(Object.keys(obj.message.name)[0]);