Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript解析Json以检索特定值_Javascript_Jquery_Json_Parsing_Wikipedia Api - Fatal编程技术网

使用Javascript解析Json以检索特定值

使用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获得这部

如何用JSON解析此url中的内容

我试图用我在下面找到的代码解析这个json url,但是它不起作用

$.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&sections=all&prop=text&sectionprop=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"]