使用JQuery从JSON文件中获取数据

时间:2016-01-16 13:34:13

标签: javascript jquery json ajax

溢出!

我目前正在做一个小工具,我必须在星期一上学。我没有太多时间做大事。所以我决定,为什么不检索Steam的Web Api信息并获取玩家的统计数据。

蒸汽api的网址: http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=DA697BB2D106697D5F8AC7E7A2BFAC52&steamid=76561198263871727

最后一个参数&steamid=代表玩家的ID。现在我已经找到了如何将steamid转换为变量,但是在尝试将id添加到url的其余部分(http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=DA697BB2D106697D5F8AC7E7A2BFAC52&steamid= id should be here并使用Ajax.getJson方法获取数据时..它只是不起作用..我是非常有经验的JSON btw ..有人可以帮我解决这个问题吗?

我的网页:

<!DOCTYPE html>
<html lang="en">
    <head>
        <!--Meta Information-->
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <!--JQuery Mobile-->
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
        <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>

        <!--FontAwesome-->
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!--Custom Styles-->
        <link href="css/style.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
        <div data-role="page" id="index">
            <div data-role="header">
                <h1>CS:GO Stats</h1>    
            </div>
            <div data-role="main" class="ui-content">
                <div class="search">
                    <label for="search">Enter SteamID:</label>
                    <input type="search" name="search" id="inputSearch" />
                    <input type="submit" id="butSearch" data-inline="true" value="Search SteamID">
                </div>
                <div id="result">

                </div>
            </div>    
        </div>
        <!--getSteamUserId function-->
        <script src="js/getSteamUserId.js"></script>
    </body>
</html>

我的Javascript代码:

$(document).ready(function() {

    $('#butSearch').click(function(event) {
        var input = $('#inputSearch').val();

        $.getJSON( "http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=DA697BB2D106697D5F8AC7E7A2BFAC52&steamid=" + input, function( data ) {
            var items = [];
            $.each( data, function( key, val ) {
                items.push( "<li id='" + key + "'>" + val + "</li>" );
            });

            $( "<ul/>", {
                "class": "my-new-list",
                html: items.join( "" )
            }).appendTo( "#result" );
        });
    })

})

现在我想要的是将JSON文件中的统计数据导入我的网页。谁会知道怎么做?我还可以看到JSON不仅是一个扁平的JSON文件..就像它有不同的层(如果这是一个很好的explenation)..

提前致谢!

2 个答案:

答案 0 :(得分:1)

像这里一样使用jsonP:

$.ajax({
  url: url,
  dataType: 'JSONP',
  type: 'GET',
  jsonp: 'jsonp',
  success: handler

});

工作示例here

答案 1 :(得分:1)

我对第一部分并不完全确定。它给我一个错误,在谷歌搜索后引导我"No 'Access-Control-Allow-Origin' header is present on the requested resource"建议使用CORS。错误:

  

XMLHttpRequest无法加载http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=DA697BB2D106697D5F8AC7E7A2BFAC52&steamid=&76561198263871727。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; null&#39;因此不允许访问。响应的HTTP状态代码为400。

一旦拥有JSON,它就会变得更容易。如果它是字符串化的,您可以使用

将其转换为javascript对象
steamObject = JSON.parse(steamJsonData);

然后像普通的javascript对象一样浏览它。使用for循环遍历playerstats.stats [i],您可以使用正常的DOM操作将数据添加到页面中。