考虑以下AJAX请求:
$.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;
}
}
}
});
这是API响应
现在,我可以使用。canonical并将id 4和5从默认的"Project"重命名为"Minecraft Wiki",但我想使用"*":值代替。这是可能的吗,或者这只是一个糟糕的wiki设置?
您需要使用foo['*']
而不是foo.*
来访问该字段,这将是一个SyntaxError。
在你的例子中就是siResponse.query.namespaces[ns]['*']
据我所知:不能,id不能以星号、数字或其他特殊字符开头。更多信息请看这篇文章。