2013-01-02 31 views
0

考慮下面的AJAX請求:如何從API請求中使用特殊字符ID?

$.ajax({ 
    url: 'http://www.minecraftwiki.net/api.php?action=query&meta=siteinfo&siprop=namespaces&format=json', 
    dataType: 'json', 
    async: false, 
    success: function(siResponse) { 
     for(var ns in siResponse.query.namespaces) { 
      if(siResponse.query.namespaces[ns].id >= 0) { 
       if(siResponse.query.namespaces[ns].id != namespaces.length) { 
        break; 
       } 
       if(siResponse.query.namespaces[ns].id === 0) { 
        namespaces[siResponse.query.namespaces[ns].id] = 'Main'; 
       } else { 
        namespaces[siResponse.query.namespaces[ns].id] = siResponse.query.namespaces[ns].&asterisk;; 
       } 
       movelog[siResponse.query.namespaces[ns].id] = 0; 
       protectlog[siResponse.query.namespaces[ns].id] = 0; 
      } 
     } 
    } 
}); 

Here's the API response

現在,我可以只使用.canonical並重新命名ID 4和5,從默認的「計劃」到「維基的Minecraft」,但我會喜歡使用「*」:值代替。這是可能的,還是這只是一個不好的維基設置?

+1

你真的應該擺脫'異步:FALSE'。你不需要它。真。相信我。 – ThiefMaster

+0

我查了一下,因爲老實說我不知道​​那是幹什麼的。我剛剛構建了示例ajax調用。 json甚至不支持那個笑話。謝謝你的提示。 – Kanegasi

回答

0

您需要使用foo['*']訪問該字段,而不是foo.*這將是一個SyntaxError。

所以你的情況這將是siResponse.query.namespaces[ns]['*']

+0

謝謝。像魅力一樣工作。 – Kanegasi

0

據我所知:不,你不能開始一個id有星號,號碼或其他特殊字符。有關更多信息,請參見this