电影数据库:返回电影概述JSON

时间:2014-08-18 00:40:25

标签: jquery ajax json api

学习如何使用带有JSON的电影数据库连接API。现在我可以调用数据库并返回" poster_path"," original_title"和" release_date"。我发现了很多关于如何挂钩电话的问题,但没有具体告诉我如何获得电影概述。根据提供的文档,我也有点模糊。

我想做的是返回"概述"每部电影。目前,当我执行console.log(json)时,我在数组对象中看不到概述参数。

我想要返回的示例可以在电影页面上 概述 部分的任何电影页Expendables 3上找到。

$(document).ready(function(){
    var url = 'http://api.themoviedb.org/3/',
            mode = 'search/movie?query=',
            input,
            movieName,
            key = '&api_key=<api_key>';

    $('#search').on('click', function() {
        var input = $('#term').val(),
                movieName = encodeURI(input);

        $.ajax({
            type: 'GET',
            url: url + mode + input + key,
            async: false,
            jsonpCallback: 'testing',
            contentType: 'application/json',
            dataType: 'jsonp',
            success: function(json) {
                jQuery.each(json.results, function (key, val) {
                    /*playing around with different keywords "overview", "primary_info" and others I randomly inserted and all returned undefined*/
                    /*console.log(json.results[key].poster_path);
                    console.log(json.results[key].original_title);
                    console.log(json.results[key].release_date);*/
                    console.log(json);
                });
            },
            error: function(e) {
                console.log(e.message);
            }
        }).done(function(){
            $('.movieSearch').find("input[type=text]").val("");
        });
    });

});

非常感谢任何帮助,如果需要更多信息来解决这个问题,很乐意提供。

3 个答案:

答案 0 :(得分:1)

感谢帮助人员。我能够在第一个AJAX调用的成功函数中运行第二个AJAX调用。然后我抓住了我需要“概述”的对象的ID,通过url传递了它并获得了正确的概述参数。

$.ajax({
            type: 'GET',
            url: url + mode + input + key,
            async: false,
            cache: false,
            jsonpCallback: 'testing',
            contentType: 'application/json',
            dataType: 'jsonp',
            success: function(json) {
                jQuery.each(json.results, function (key, val) {
                    console.log(json.results[key].id);
                });
                console.log(json);
                var first = json.results[0].id;
                console.log(first);
                    $.ajax({
                        type: 'GET',
                        url: url + 'movie/' + first + '?' + key,
                        async: false,
                        cache: false,
                        jsonpCallback: 'testing',
                        contentType: 'application/json',
                        dataType: 'jsonp',
                        success: function(json) {
                            console.log(json.overview);
                        },
                        error: function(e) {}
                    }).done();
            },
            error: function(e) {}
        }).done();

再次感谢帮助人员并让我走上正确的道路。

答案 1 :(得分:0)

看起来你正在进行/search/movie?query={phrase}通话。该调用将返回与查询匹配的电影列表的摘要信息。为列表中的每个电影返回id值。然后,您可以在后续id调用中使用/movie/{id}来获取电影的详细信息。详细信息将包括概述。

答案 2 :(得分:0)

因为没有json.requests。您可以通过点表示法访问json的属性。

success: function(json) {
    console.log(json);
    console.log(json.poster_path);
    console.log(json.production_companies.name);
},