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 ment 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?
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 ment 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?
Share Improve this question asked Feb 11, 2009 at 19:00 j pimmelj pimmel 11.7k6 gold badges36 silver badges43 bronze badges3 Answers
Reset to default 3Try this:
assertEquals('some thing', jsonObj["type"]);
assertEquals(2, jsonObj["width"]);
Your example works fine for me. ‘width’ and ‘type’ are not reserved words in JavaScript (although ‘typeof’ is).
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.