Reputation: 11637
I have some JS code which generates the following object,
return {
"type": "some thing",
"width": 2,
"colour": "#AA12BB",
"values": [2,3,4]
}
The creation of this isn't a problem.
In writing the test for the method that returns this am having a problem accessing the width/type attributes: the following assertions fail (it leads to a execution/syntax error, which go away when i comment them).
assertEquals('some thing', jsonObj.type);
assertEquals(2, jsonObj.width);
while
assertEquals('#AA12BB', jsonObj.colour);
passes
Since I cannot change the key names for what I am doing, is there any way to access these values?
Upvotes: 5
Views: 2188
Reputation: 536349
Your example works fine for me. ‘width’ and ‘type’ are not reserved words in JavaScript (although ‘typeof’ is).
Upvotes: 3
Reputation: 14092
dot notation does not work with reserved words, such as "type". In that case you have to use array notation.
Mozilla's list of Java Script Reserved words.
Upvotes: 0
Reputation: 351476
Try this:
assertEquals('some thing', jsonObj["type"]);
assertEquals(2, jsonObj["width"]);
Upvotes: 3