使用Javascript解析Json以检索特定值
如何用JSON解析此url中的内容 我试图用我在下面找到的代码解析这个json url,但是它不起作用使用Javascript解析Json以检索特定值,javascript,jquery,json,parsing,wikipedia-api,Javascript,Jquery,Json,Parsing,Wikipedia Api,如何用JSON解析此url中的内容 我试图用我在下面找到的代码解析这个json url,但是它不起作用 $.getJSON(url, function (json) { alert(json.result); $.each(json.list, function (i, fb) { alert(fb.result); }); }); 这是我的JS小提琴 如果我没弄错的话,这应该会弹出一个窗口,里面有一些信息 基本上,我正试图通过维基百科的api获得这部
$.getJSON(url, function (json) {
alert(json.result);
$.each(json.list, function (i, fb) {
alert(fb.result);
});
});
这是我的JS小提琴
如果我没弄错的话,这应该会弹出一个窗口,里面有一些信息
基本上,我正试图通过维基百科的api获得这部电影的演员阵容
我缩小了结果的范围,但是我似乎找不到一种方法来从数据中获得星号值
请帮助这个新手
谢谢你/因为这是一个跨域请求,你需要使用
jsonp
-url末尾的回调=?
$.getJSON('http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=RoboCop_(2014_film)&rvsection=0&callback=?', function (json) {
console.log(json);
$.each(json.list, function (i, fb) {
alert(fb.result);
});
});
演示:-查看浏览器控制台以查看日志记录语句,不要将警报用于调试目的
此外,在小提琴中,您没有包括jQuery
您对URL内容不太了解,但可以根据需要进行更改
var url = "http://en.wikipedia.org/w/api.php?action=mobileview&format=json&page=RoboCop_(2014_film)&redirect=no§ions=all&prop=text§ionprop=level&noimages=&noheadings=&callback=?";
jQuery.getJSON(
url,
function (data){
var t = data.mobileview.sections[2].text, out = [];
t = t.replace(/<a[^>]+>([^<]+)<\/a>/igm,"$1");
var m = t.match(/(?:<li>)([a-zA-Z ]+) as ([a-zA-Z ]+)(?:,)/img);
m.forEach(function (s){
out.push(s.replace(/(?:<li>)([a-zA-Z ]+) as ([a-zA-Z ]+)(?:,)/i, "$1 = $2"));
});
console.log(out);// this is result, but you have to modify it as your taste
}
);
重要强>
此代码不适用于其他wikipedia页面,因为它依赖于JSON数据,在本例中,“Cast”部分有一个索引
2
。另一个“电影”页面可能具有不同的结构,具体取决于作者 我用它来快速获取信息Hello Ruben,有没有办法解决这个问题?我正在寻找一种自动化的方法来处理其他页面/电影。当然,没有一种通用的方法。在一个网站上,这完全是人为的输入,因此,网页的组成是不可预测的。但也许结构会更好?在Cast部分有ID=“titleCast”
,我知道你是怎么说基于人类提交的随机输入的。但是,在非移动版本中,页面本身有一个常量。例如,Robocop链接与其他提交的电影完全一致,因此为什么我问我是否可以这样做……我也不能用regex解析json数据吗?在每部电影的数据中,我都是这样写的:“主演={{Plainlist}\n*[[Joel Kinnaman]]\n*[[Gary Oldman]]\n*[[Michael Keaton]]]\n*[[Samuel L.Jackson]]\n}}\n}\n |”演员的名字当然是不同的“我对regex没有充分的了解,但如果有一个不变的模式,比如主演=”“这不管用吗?亲爱的克雷格。你应该给regex一个拥抱。这是解析本世纪地球上一切事物的唯一方法。实际上,你可以识别任何你可以预测的输入。问题在于你需要写多少代码。我回答了你们的问题,但这只是你们要解决的一个大问题中的一个问题。
["Joel Kinnaman = Alex Murphy", "Michael Keaton = Raymond Sellars", "Abbie Cornish = Clara Murphy", "Jackie Earle Haley = Maddox", "Michael Kenneth Williams = Officer Jack Lewis", "Jennifer Ehle = Liz Kline", "Jay Baruchel = Tom Pope", "Aimee Garcia = Kim", "John Paul Ruttan = David Murphy", "Douglas Urbanski = Mayor Durant"]