2011-09-30 10 views
7

javascript内のキー「*」を持つjsonオブジェクトのフィールドにアクセスしようとしています。 *動作しませんmyObject.parse.textにアクセスしようとしJSON - '*'という名前のアクセスフィールドアスタリスク

{"parse": 
{"text": 
    {"*":"text i want to access"} 
} 
} 

、どちらもmyObject.parse.textは[0]を行います。 jsonstringは次のようになりません。 私は今一時間を探しましたが、アスタリスクに特別な意味があるというヒントは見つかりませんでした。 もし完全なツリーをたどって文字列比較を 'if(key == "*")'で検索したいのですが、このフィールドに直接アクセスしたいのですが。 フィールドにアクセスする方法はありますか?

+9

JSON文字列は少し周り平手打ちする必要があることを設計し誰。 –

+2

これはウィキペディアのapiで入手できます(例:http://de.wikipedia.org/w/api.php?action=parse&page=Robbie_Williams&format=json&prop=text§ion=0 – simon

+0

)これはきれいではありませんが、ある種のフロントエンド翻訳モジュールでは意味があります。特定の言語の翻訳キーが存在しない場合に標準文字列を挿入する必要があります。 – iMe

答えて

11
json.parse.text["*"] 

オブジェクトメンバーのおかげさまです。

+1

ありがとう、それも同様に動作します。これは奇妙な名前で、MediaWiki APIの 'parse'関数によって返されます。 – Peter

5

parse.textにインデックス演算子を使用してみてください。

var value = object.parse.text["*"]; 
+1

ありがとう、それは動作します! – Peter

+0

@genesisあなたの編集を理解できませんか?何らかの理由? – Fox32

+0

@ Fox32:はい。私はあなたのポストを偶然に落としてしまったが、長い時間の後にそれに気づいた。 – genesis

5

はあなたが行うことができ

var text = myObject.parse.text['*'] 
+1

ありがとう、それは動作する! – Peter

2

を使用しよう:

var json = {"parse": 
{"text": 
    {"*":"text i want to access"} 
} 
} 

alert(json.parse.text['*']); 
関連する問題