MediaWiki API返回JSON,其键名如" 3314"和" *"。当我尝试以正常方式访问它们时,这些抛出错误。
var ob = {
"query": {
"normalized": [
{
"from": "DE:OpenStreetMap_License",
"to": "DE:OpenStreetMap License"
}
],
"pages": {
"3314": {
"pageid": 3314,
"ns": 200,
"title": "DE:OpenStreetMap License",
"revisions": [
{
"contentformat": "text/x-wiki",
"contentmodel": "wikitext",
"*": "{{Languages|OpenStreetMap_License}}\n\nSiehe '''[http://www.openstreetmap.org/copyright www.openstreetmap.org/copyright]'''.\n\n[[Category:License]]"
}
]
}
}
}
};
在那里你看到了问题:名为3314和*。
的键我的第一个方法是使用
$("#b").val(ob.query.pages.3314.revisions[0].*);
这当然会引发错误。
我现在正在使用
// this works with jquery, but is ugly
$.each(ob.query.pages, function(p, pageobject) {
$("#a").text(p);
$.each(pageobject.revisions[0], function(k,v) {
if (k == "*") {
$("#b").text(v);
}
});
});
但这不能成为访问名为" *"的单个怪物的正确方法。
答案 0 :(得分:2)
使用
$("#a").val(ob.query.pages['3314'].revisions[0]['*']);