2011-09-30 64 views
7

我想訪問一個JavaScript中的關鍵字'*'json對象中的字段。 的jsonstring看起來是這樣的:JSON - 訪問字段名爲'*'星號

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

嘗試訪問myObject.parse.text *不工作,也不做myObject.parse.text [0]。 我已經搜索了一個小時,但沒有發現任何提示,星號有特殊的含義。 如果我只是遍歷整個樹並進行字符串比較la'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["*"] 

對象成員的Yucky名稱。

+1

謝謝,這也適用。這是一個奇怪的名字,它是由MediaWiki的API「解析」功能返回。 – 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['*']);