4

There is a syntax error in the following code:

<!DOCTYPE html>
<html>
  <body>
    Hello World!
    <script type="text/javascript">
        var obj = {'a:b': '1'};
        alert(obj.a:b); // syntax error
    </script>
  </body>
</html>

So how to handle JavaScript objects with colons in key names?

I have to do this because I need to handle a feed in jsonp format from a remote server which I do not have control over, and there are colons in the key names of the returned jsonp (because the jsonp is converted from XML with namespaces in tags).

1 Answer 1

9

Access them with:

obj['a:b']

The brackets are synonymous with . except they accept strings (including variables!)

So obj.x == obj['x'], and if you had a variable foo = 'x' then obj[foo] would also be equal.

Don't let the syntax fool you, though. It may look like syntax for array access, but it is actually another way to access properties from objects.

Sign up to request clarification or add additional context in comments.

1 Comment

Oops...I almost forgot this syntax. Rarely use subscript notation on objects.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.