JSON到JavaScript对象#文本属性

JSON到JavaScript对象#文本属性,javascript,json,eval,hashtag,Javascript,Json,Eval,Hashtag,我目前正在开发一个JavaScript插件,它从API接收JSON。到目前为止,很好,我检索了JSON,然后使用eval()将此JSON转换为JavaScript对象。问题就从这里开始 我的JSON包含一个“#text”属性。我对JavaScript对象进行了评估,发现它也有这个“#text”属性,但我无法调用该属性,因为不接受带有哈希标记的变量 我知道两种可能的解决方案(使用eval()转换为数组或删除hast标记),但我更喜欢调用属性。有什么想法吗?谢谢。不要使用eval,尤其是在这种情况下

我目前正在开发一个JavaScript插件,它从API接收JSON。到目前为止,很好,我检索了JSON,然后使用
eval()
将此JSON转换为JavaScript对象。问题就从这里开始

我的JSON包含一个“#text”属性。我对JavaScript对象进行了评估,发现它也有这个“#text”属性,但我无法调用该属性,因为不接受带有哈希标记的变量


我知道两种可能的解决方案(使用
eval()
转换为数组或删除hast标记),但我更喜欢调用属性。有什么想法吗?谢谢。

不要使用eval,尤其是在这种情况下。如果你有一个json解析器,现代浏览器已经有了

var myObj = JSON.parse(returnFromServer);
console.log(myObj.firstProperty); // etc

这里有一个json2的CDN链接,不要使用eval,尤其是对于这个。如果你有一个json解析器,现代浏览器已经有了

var myObj = JSON.parse(returnFromServer);
console.log(myObj.firstProperty); // etc

这里有一个json2的CDN链接

在求值之前做一些事情,比如用其他东西替换哈希符号。

在求值之前做一些事情,比如用其他东西替换哈希符号。

您可以用方括号引用对象属性:

var obj = {'#foo': 'bar'};
obj['#foo']; // 'bar'
事实上,
obj.#foo
是无效的(即会引发语法错误),但上面的方法没有问题


另外,除非必要,否则不要使用eval。尽管是一个较慢的解决方案,但安全性较低,特别是考虑到通常有这么多本机JSON方法,并且大多数JSON库只有在本机方法不存在的情况下才会引入该功能。

您可以使用方括号引用对象属性:

var obj = {'#foo': 'bar'};
obj['#foo']; // 'bar'
事实上,
obj.#foo
是无效的(即会引发语法错误),但上面的方法没有问题


另外,除非必要,否则不要使用eval。尽管是一个较慢的解决方案,但安全性较低,特别是考虑到通常有这么多本机JSON方法,并且大多数JSON库只有在本机方法不存在的情况下才会引入该功能。

除非必须,否则不要使用eval。尽管是一个较慢的解决方案,但安全性较低,特别是考虑到通常有很多本机JSON方法。其次,请澄清您的问题,因为名为
#blah
的属性是完全有效的;警报(obj[textName])。除非必须,否则不要使用eval。尽管是一个较慢的解决方案,但安全性较低,特别是考虑到通常有很多本机JSON方法。其次,请澄清您的问题,因为名为
#blah
的属性是完全有效的;警报(obj[textName])