1

私は現在、APIからJSONを受け取るJavaScriptアドオンを開発しています。これまでのところ、JSONを取得してeval()から、このJSONをJavaScriptオブジェクトに変換するために使用しています。ここから問題が始まります。

私のJSONには「#text」プロパティが含まれています。JavaScriptオブジェクトを評価したところ、この'#text'プロパティも含まれていることがわかりましたが、ハッシュタグ付きの変数は受け入れられないため、プロパティを呼び出すことができません。

私は2つの可能な解決策(eval()配列への変換またはhast-tagの削除に使用)を知っていますが、プロパティを呼び出すことをお勧めします。何か案は?ありがとう。

4

3 に答える 3

9

角かっこでオブジェクトのプロパティを参照できます。

var obj = {'#foo': 'bar'};
obj['#foo']; // 'bar'

確かに、obj.#fooは無効です(つまり、構文エラーが発生します)が、上記の方法で問題ありません。

また、必要がない限り、evalは使用しないでください。遅いソリューションですが、特にネイティブJSONメソッドが非常に多いことを考えると、安全性は低くなります。ほとんどのJSONライブラリは、ネイティブメソッドが存在しない場合にのみ機能を導入します。

于 2011-07-28T23:06:21.893 に答える
3

特にこれにはevalを使用しないでください。あなたはjsonパーサーです、現代のブラウザはすでにそれらを持っています。

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

これがjson2のCDNリンクですhttp://ajax.cdnjs.com/ajax/libs/json2/20110223/json2.js

于 2011-07-28T23:01:52.603 に答える
1

ハッシュ記号を別のものに置き換えるなど、evalの前に何かを行います。

于 2011-07-28T23:02:34.950 に答える