-5

我正在尝试使用 javascript 解析 JSON 文件并仅显示数组中的图像。我在这里做错了什么,我将如何解决它?执行代码时屏幕上没有输出。我以为这会输出图像,但没有发生任何事情。

HTML:

<!DOCTYPE html>
<html>

<script 'type=text/javascript' 'src=js.js'></script>
<script  type="text/javascript" src="ajax link was here"></script>
  <head lang="en">
    <meta charset="utf-8">
    <title>images</title>
  </head>

  <body>

    <div class = "movie">

    </div>


  </body>

</html>

Javascript 文件

$(document).ready(function () {

    $.get('http://54.243.128.130/search/movies_list/?q=inception', function (data, image) {

        var movie = JSON.parse(data);

        for (var x = 0; x < movie.length; x++) {
            var mov = movie[x];
            //var elm = '<div class = "movie"><img src = "'+mov.img+'"></div>';
            var elm = mov.img;
            $('.movie').prepend(elm);

        }

    }, 'text');

});

预先感谢您的任何帮助。

4

3 回答 3

1

对于初学者,您可能想要更改

<script 'type=text/javascript' 'src=js.js'></script>

<script type="text/javascript" src="js.js"></script>

您能描述一下您遇到的错误/问题吗?

于 2013-02-21T00:48:20.453 回答
1

无需解析自己,只需使用即可$.getJSON

$.getJSON('http://54.243.128.130/search/movies_list/?q=inception', function (data, image) {

    for (var x = 0; x < data.length; x++) {
        var mov = data[x];
        //var elm = '<div class = "movie"><img src = "'+mov.img+'"></div>';
        var elm = mov.img;
        $('.movie').prepend(elm);

    }

}

此外,您的结构错误。该页面返回如下内容:

{
   "query": "the value of your q parameter"
   "results": []
}

因此,您还需要修改循环和数据访问。所以把它放在一起:

$.getJSON('http://54.243.128.130/search/movies_list/?q=inception', function (data, image) {

        var movies = data.results;

        for (var x = 0; x < movies.length; x++) {
            var mov = movies[x];
            //var elm = '<div class = "movie"><img src = "'+mov.img+'"></div>';
            var elm = mov.img;
            $('.movie').prepend(elm);

        }

    }

最后,如果这与您的代码不在同一台服务器上,您将需要使用jsonp或创建本地代理来发出外部请求。

于 2013-02-21T00:46:13.097 回答
-2

JSON.parse 函数返回字典而不是数组。所以假设我们有一个字典作为 JSON.parse 的输出:
var movie={a:1,b:2,c:3};
然后你应该像这样迭代它:

for(var i=0;i<Object.keys(movie).length;i++){
    var mov = movie[Object.keys(movie)[i]];
    var elm = mov.img;
    $('.movie').prepend(elm
}
于 2013-02-21T00:51:48.337 回答