0

I've retrieved a JSON response from an external API and one of the variable names begins with a # character, so the JSON variable looks like this #text. Unfortunately angular doesn't know how to handle this variable, is there any way delete the # so that the data assigned to the identifier is usable. JSON response with #text identifier

  • 2
    What do you mean "angular doesn't know how to handle it?" That could mean a number of things, but what I think you mean is that _you_ don't know how to handle it. Don't use the dot notation, use the bracket notation to reference it, like `object['#text']` instead of `object.#text` – Patrick Roberts Sep 17 '17 at 08:06
  • Yeah, I didn't know how to handle it, this is the correct answer. – William Lake. Sep 17 '17 at 08:17

3 Answers3

1

In order to reference a property that does not follow the rules for a properly formatted identifier, you must use bracket notation instead of dot notation for the property accessor:

var object = JSON.parse('{"#text":"https://lastfm-im...png","size":"extralarge"}')
console.log(object['#text'])
Patrick Roberts
  • 49,224
  • 10
  • 102
  • 153
0

you cam modifide the response - loop throw it wite map- and chenge the object key -see here: JavaScript: Object Rename Key

yanai edri
  • 359
  • 2
  • 4
0

You can use square bracket notation instead of dot notation. like (Object mutation is highly not recommended)

//to access it u can use square bracket notation like k["objectname"]
let k = {"#test":"some data"}
 alert("data is "+k["#test"])
karthik
  • 1,100
  • 9
  • 21