• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage JSON auswerten

Skidrow

Mitglied
Und zwar bekomme ich den request nicht richtig ausgewertet. Ich habe zahlen da drin und deshalb komme ich da nicht drauf. Wie kann ich das beheben? Der request ist nur ein ausschnitt. Er ist definitv richtig... also es liegt nur an mir. Ich brauche den Wert von "global_rating" und "clan".

Code:
function spieler_daten() {
    var account_id = "500995666";
    $("#Ergebnis").html("Lade...");
    jQuery.getJSON("https://api.worldoftanks.eu/wot/account/info/","application_id=ba99b565bf48c0ffcb2fccb0aa061f27" + "&account_id=" + account_id,
        function(Daten) {
        var output="<ul>";
        for (var i in Daten.data) {
           output+="<li>" + Daten.data[i].account_id.global_rating + "--" + Daten.data[i].account_id.statistics.clan+"</li>";
     
 
       output+="</ul>";
       document.getElementById("#Ergebnis").innerHTML=output;
        }
    });
}

Code:
{"status":"ok","meta":{"count":1},"data":{"500995666":{"client_language":"de","last_battle_time":1498157852,"account_id":500995666,"created_at":1310721542,"updated_at":1498158929,"private":null,"ban_time":null,"global_rating":6773,"clan_id":500046833,"statistics":{"clan":{"spotted":50,"battles_on_stunning_vehicles":0,"avg_damage_blocked":901.67,"direct_hits_received":287,"explosion_hits":0,"piercings_received":215,"piercings":211,"xp":40862,"survived_battles":24,"dropped_capture_points":2,"hits_percents":69,"draws":2,"battles":55,"damage_received":78282,"avg_damage_assisted":627.15,"avg_damage_assisted_track":136.33,"frags":45,"stun_number":0,"avg_damage_assisted_radio":490.82,"capture_points":12,"stun_assisted_damage":0,"hits":253,"battle_avg_xp":743,"wins":28,"losses":25,"damage_dealt":93976,"no_damage_direct_hits_received":72,"shots":366,"explosion_hits_received":18,"tanking_factor":0.51},"all":{"spotted":7802,"battles_on_stunning_vehicles":8,"max_xp":2496,"avg_damage_blocked":363.12,"direct_hits_received":45288,"explosion_hits":764,"piercings_received":32385,"piercings":46325,"max_damage_tank_id":12049,"xp":6303406,"survived_battles":3026,"dropped_capture_points":7835,"hits_percents":66,"draws":89,"max_xp_tank_id":3361,"battles":9741,"damage_received":8583243,"avg_damage_assisted":307.92,"max_frags_tank_id":1809,"avg_damage_assisted_track":70.52,"frags":10381,"stun_number":31,"avg_damage_assisted_radio":237.41,"capture_points":11095,"stun_assisted_damage":684,"max_damage":6968,"hits":68719,"battle_avg_xp":647,"wins":5090,"losses":4562,"damage_dealt":11077224,"no_damage_direct_hits_received":12903,"max_frags":10,"shots":103818,"explosion_hits_received":1858,"tanking_factor":0.37},"regular_team":{"spotted":0,"battles_on_stunning_vehicles":0,"max_xp":0,"avg_damage_blocked":0.0,"direct_hits_received":0,"explosion_hits":0,"piercings_received":0,"piercings":0,"max_damage_tank_id":null,"xp":0,"survived_battles":0,"dropped_capture_points":0,"hits_percents":0,"draws":0,"max_xp_tank_id":null,"battles":0,"damage_received":0,"avg_damage_assisted":0.0,"max_frags_tank_id":null,"avg_damage_assisted_track":0.0,"frags":0,"stun_number":0,"avg_damage_assisted_radio":0.0,"capture_points":0,"stun_assisted_damage":0,"max_damage":0,"hits":0,"battle_avg_xp":0,"wins":0,"losses":0,"damage_dealt":0,"no_damage_direct_hits_received":0,"max_frags":0,"shots":0,"explosion_hits_received":0,"tanking_factor":0.0},"trees_cut":17758,"company":{"spotted":11,"battles_on_stunning_vehicles":0,"avg_damage_blocked":228.89,"direct_hits_received":65,"explosion_hits":0,"piercings_received":48,"piercings":57,"xp":8729,"survived_battles":5,"dropped_capture_points":12,"hits_percents":70,"draws":0,"battles":15,"damage_received":14719,"avg_damage_assisted":87.67,"avg_damage_assisted_track":0.0,"frags":12,"stun_number":0,"avg_damage_assisted_radio":87.67,"capture_points":100,"stun_assisted_damage":0,"hits":71,"battle_avg_xp":582,"wins":7,"losses":8,"damage_dealt":14408,"no_damage_direct_hits_received":17,"shots":101,"explosion_hits_received":2,"tanking_factor":0.22},"stronghold_skirmish":{"spotted":70,"battles_on_stunning_vehicles":0,"max_xp":2078,"direct_hits_received":734,"explosion_hits":1,"piercings_received":587,"piercings":622,"xp":89572,"survived_battles":57,"dropped_capture_points":363,"hits_percents":71,"draws":6,"max_xp_tank_id":16897,"battles":158,"damage_received":156412,"max_frags_tank_id":16897,"frags":110,"stun_number":0,"capture_points":99,"stun_assisted_damage":0,"max_damage_tank_id":9489,"max_damage":4609,"hits":862,"battle_avg_xp":567,"wins":73,"losses":79,"damage_dealt":176577,"no_damage_direct_hits_received":147,"max_frags":5,"shots":1214,"explosion_hits_received":73,"tanking_factor":0.24},"stronghold_defense":{"spotted":37,"battles_on_stunning_vehicles":0,"max_xp":1821,"direct_hits_received":580,"explosion_hits":2,"piercings_received":389,"piercings":435,"xp":64541,"survived_battles":33,"dropped_capture_points":173,"hits_percents":81,"draws":0,"max_xp_tank_id":16897,"battles":89,"damage_received":158332,"max_frags_tank_id":16897,"frags":60,"stun_number":0,"capture_points":118,"stun_assisted_damage":0,"max_damage_tank_id":12049,"max_damage":6121,"hits":727,"battle_avg_xp":725,"wins":42,"losses":47,"damage_dealt":167991,"no_damage_direct_hits_received":191,"max_frags":4,"shots":899,"explosion_hits_received":144,"tanking_factor":0.43},"historical":{"spotted":2,"battles_on_stunning_vehicles":0,"max_xp":549,"avg_damage_blocked":366.67,"direct_hits_received":26,"explosion_hits":0,"piercings_received":19,"piercings":16,"max_damage_tank_id":529,"xp":1210,"survived_battles":0,"dropped_capture_points":0,"hits_percents":55,"draws":1,"max_xp_tank_id":529,"battles":3,"damage_received":2840,"avg_damage_assisted":147.67,"max_frags_tank_id":529,"avg_damage_assisted_track":37.67,"frags":2,"stun_number":0,"avg_damage_assisted_radio":110.0,"capture_points":0,"stun_assisted_damage":0,"max_damage":1776,"hits":29,"battle_avg_xp":403,"wins":1,"losses":1,"damage_dealt":2746,"no_damage_direct_hits_received":7,"max_frags":2,"shots":53,"explosion_hits_received":0,"tanking_factor":0.37},"team":{"spotted":583,"battles_on_stunning_vehicles":0,"max_xp":2346,"avg_damage_blocked":386.41,"direct_hits_received":3384,"explosion_hits":3,"piercings_received":2487,"piercings":3026,"max_damage_tank_id":5377,"xp":469610,"survived_battles":266,"dropped_capture_points":1622,"hits_percents":76,"draws":22,"max_xp_tank_id":5377,"battles":654,"damage_received":679073,"avg_damage_assisted":215.98,"max_frags_tank_id":11537,"avg_damage_assisted_track":62.94,"frags":548,"stun_number":0,"avg_damage_assisted_radio":153.05,"capture_points":1165,"stun_assisted_damage":0,"max_damage":4168,"hits":4071,"battle_avg_xp":718,"wins":339,"losses":293,"damage_dealt":853702,"no_damage_direct_hits_received":897,"max_frags":5,"shots":5345,"explosion_hits_received":4,"tanking_factor":0.32},"frags":null},"nickname":"DEFSKIDROW","ban_info":null,"logout_at":1498158926}}}
 
Zuletzt bearbeitet:
Werbung:
Bin mittlerweile weiter gekommen.

Das wird mir in der console ausgeworfen wenn ich console.log nutze <ul><li>undefined--undefined</li></ul>

Code:
function spieler_daten() {
    var account_id = 500995666;
    $("#Ergebnis").html("Lade...");
    jQuery.getJSON("https://api.worldoftanks.eu/wot/account/info/","application_id=ba99b565bf48c0ffcb2fccb0aa061f27" + "&account_id=" + account_id,
        function(Daten) {
        var output="<ul>";
        for (var i in Daten.data) {
           output+="<li>" + Daten.data[i].account_id.global_rating + "--" + Daten.data[i].account_id.clan_id+"</li>";
       
   
       output+="</ul>";
        console.log(output)
       document.getElementById("#Ergebnis").innerHTML=output;
        }
    });
   
}
 
Werbung:
Werbung:
So geht das. In der Console siehst du, was ankommt.
Code:
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
  <title>Document</title>
</head>
<body ng-app="wotApp">
  <div class="container" ng-controller="AppController" style="margin-top: 50px;">
    <div>
      <button class="btn btn-primary" ng-click="getPlayerInfo()">Click me</button>
    </div>
    <ul ng-if="player" class="list-unstyled">
      <li>Nickname: {{player.nickname}}</li>
      <li>Global Rating: {{player.global_rating}}</li>
      <li>Clan: {{player.clan_id}}</li>
    </ul>
  </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
  <script>
    angular.module('wotApp', [])
      .controller('AppController', function($scope, $http) {
        var account_id = 500995666,
            application_id = 'ba99b565bf48c0ffcb2fccb0aa061f27',
            url = 'https://api.worldoftanks.eu/2.0/account/info/?application_id=';

        $scope.getPlayerInfo = function() {
          $http.get(url + application_id + '&account_id=' + account_id)
            .then(
              function(result) {
                console.log('result',result);
                $scope.player = result.data.data[account_id];
              },
              function(error) {
              console.log('keine Daten', error);
            })
        };
      });
  </script>
</body>
</html>

Und wie an anderer Stelle bereits erwähnt, verwende ein Framework, welches selbständig DOM Nodes erzeugt. Heutzutage lässt sich HTML auch clientseitig per JavaScript rendern.
 
Werbung:
Mein einziges Problem ist halt, dass ich es nicht hinbekomme an den Wert von z.B. client_language dran zu kommen. Ich habe um an die account_id zu kommen eine andere Funktion erstellt und da schaffe ich das auch. Hier ist kommt aber erst noch einmal die eigentliche account_id (die ich vorher ausgelesen habe) und an der muss ich halt vorbei um auf client_language ran zu kommen. Aber scheinbar verstehe ich da was falsch. Die ganzen Tutorials sind halt alle nur um im ersten Knoten zu arbeiten oder um Arrays aus dem ersten auszulesen. Sobald ich aber aus der, ich nenne es Mal 2. Oder 3. Ebene was auslesen muss, komme ich nicht mehr dran
 
Ich habe dir doch eine Lösung gezeigt. Das Response Obj wird in player gespeichert und nick, ranking und clan id im HTML gerendert.
 
Pr
So geht das. In der Console siehst du, was ankommt.
Code:
<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
  <title>Document</title>
</head>
<body ng-app="wotApp">
  <div class="container" ng-controller="AppController" style="margin-top: 50px;">
    <div>
      <button class="btn btn-primary" ng-click="getPlayerInfo()">Click me</button>
    </div>
    <ul ng-if="player" class="list-unstyled">
      <li>Nickname: {{player.nickname}}</li>
      <li>Global Rating: {{player.global_rating}}</li>
      <li>Clan: {{player.clan_id}}</li>
    </ul>
  </div>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
  <script>
    angular.module('wotApp', [])
      .controller('AppController', function($scope, $http) {
        var account_id = 500995666,
            application_id = 'ba99b565bf48c0ffcb2fccb0aa061f27',
            url = 'https://api.worldoftanks.eu/2.0/account/info/?application_id=';

        $scope.getPlayerInfo = function() {
          $http.get(url + application_id + '&account_id=' + account_id)
            .then(
              function(result) {
                console.log('result',result);
                $scope.player = result.data.data[account_id];
              },
              function(error) {
              console.log('keine Daten', error);
            })
        };
      });
  </script>
</body>
</html>

Und wie an anderer Stelle bereits erwähnt, verwende ein Framework, welches selbständig DOM Nodes erzeugt. Heutzutage lässt sich HTML auch clientseitig per JavaScript rendern.


Ja das stimmt, nur gefällt mir dieses Angular garnicht. Ich mag das gar nicht
 
Werbung:
Warum poste ich eigentlich einen Lösungsansatz, wenn dieser doch ignoriert wird?

Du kannst es natürlich auch mit jQuery machen und Markup per Loop erzeuegen, nur hat das dann nichts mehr mit moderner Webentwicklung zu tun.
 
Es ist nicht, das ich deinen Lösungsansatz nicht gerade Versuche zu nutzen! Mir ist es völlig egal ob modern oder nicht. Es soll funktionieren. Ich möchte eine für mich nachvollziehbare Variante finden. Mit deiner Variante, hänge ich auch in der Luft. Ich weiß nicht einmal wie ich aus den Value eines Buttons an einer Angular Funktion übergeben kann.
 
Werbung:
PS: Ich sehe, Du benutzt client_id, um die Daten vom Server zu holen. Schau mal, ob dir dies hilft:
Code:
    <script>
        var dat = { "status": "ok", "meta": { "count": 1 }, "data": { "500995666": { "client_language": "de", "last_battle_time": 1498157852, "account_id": 500995666, "created_at": 1310721542, "updated_at": 1498158929, "private": null, "ban_time": null, "global_rating": 6773, "clan_id": 500046833, "statistics": { "clan": { "spotted": 50, "battles_on_stunning_vehicles": 0, "avg_damage_blocked": 901.67, "direct_hits_received": 287, "explosion_hits": 0, "piercings_received": 215, "piercings": 211, "xp": 40862, "survived_battles": 24, "dropped_capture_points": 2, "hits_percents": 69, "draws": 2, "battles": 55, "damage_received": 78282, "avg_damage_assisted": 627.15, "avg_damage_assisted_track": 136.33, "frags": 45, "stun_number": 0, "avg_damage_assisted_radio": 490.82, "capture_points": 12, "stun_assisted_damage": 0, "hits": 253, "battle_avg_xp": 743, "wins": 28, "losses": 25, "damage_dealt": 93976, "no_damage_direct_hits_received": 72, "shots": 366, "explosion_hits_received": 18, "tanking_factor": 0.51 }, "all": { "spotted": 7802, "battles_on_stunning_vehicles": 8, "max_xp": 2496, "avg_damage_blocked": 363.12, "direct_hits_received": 45288, "explosion_hits": 764, "piercings_received": 32385, "piercings": 46325, "max_damage_tank_id": 12049, "xp": 6303406, "survived_battles": 3026, "dropped_capture_points": 7835, "hits_percents": 66, "draws": 89, "max_xp_tank_id": 3361, "battles": 9741, "damage_received": 8583243, "avg_damage_assisted": 307.92, "max_frags_tank_id": 1809, "avg_damage_assisted_track": 70.52, "frags": 10381, "stun_number": 31, "avg_damage_assisted_radio": 237.41, "capture_points": 11095, "stun_assisted_damage": 684, "max_damage": 6968, "hits": 68719, "battle_avg_xp": 647, "wins": 5090, "losses": 4562, "damage_dealt": 11077224, "no_damage_direct_hits_received": 12903, "max_frags": 10, "shots": 103818, "explosion_hits_received": 1858, "tanking_factor": 0.37 }, "regular_team": { "spotted": 0, "battles_on_stunning_vehicles": 0, "max_xp": 0, "avg_damage_blocked": 0.0, "direct_hits_received": 0, "explosion_hits": 0, "piercings_received": 0, "piercings": 0, "max_damage_tank_id": null, "xp": 0, "survived_battles": 0, "dropped_capture_points": 0, "hits_percents": 0, "draws": 0, "max_xp_tank_id": null, "battles": 0, "damage_received": 0, "avg_damage_assisted": 0.0, "max_frags_tank_id": null, "avg_damage_assisted_track": 0.0, "frags": 0, "stun_number": 0, "avg_damage_assisted_radio": 0.0, "capture_points": 0, "stun_assisted_damage": 0, "max_damage": 0, "hits": 0, "battle_avg_xp": 0, "wins": 0, "losses": 0, "damage_dealt": 0, "no_damage_direct_hits_received": 0, "max_frags": 0, "shots": 0, "explosion_hits_received": 0, "tanking_factor": 0.0 }, "trees_cut": 17758, "company": { "spotted": 11, "battles_on_stunning_vehicles": 0, "avg_damage_blocked": 228.89, "direct_hits_received": 65, "explosion_hits": 0, "piercings_received": 48, "piercings": 57, "xp": 8729, "survived_battles": 5, "dropped_capture_points": 12, "hits_percents": 70, "draws": 0, "battles": 15, "damage_received": 14719, "avg_damage_assisted": 87.67, "avg_damage_assisted_track": 0.0, "frags": 12, "stun_number": 0, "avg_damage_assisted_radio": 87.67, "capture_points": 100, "stun_assisted_damage": 0, "hits": 71, "battle_avg_xp": 582, "wins": 7, "losses": 8, "damage_dealt": 14408, "no_damage_direct_hits_received": 17, "shots": 101, "explosion_hits_received": 2, "tanking_factor": 0.22 }, "stronghold_skirmish": { "spotted": 70, "battles_on_stunning_vehicles": 0, "max_xp": 2078, "direct_hits_received": 734, "explosion_hits": 1, "piercings_received": 587, "piercings": 622, "xp": 89572, "survived_battles": 57, "dropped_capture_points": 363, "hits_percents": 71, "draws": 6, "max_xp_tank_id": 16897, "battles": 158, "damage_received": 156412, "max_frags_tank_id": 16897, "frags": 110, "stun_number": 0, "capture_points": 99, "stun_assisted_damage": 0, "max_damage_tank_id": 9489, "max_damage": 4609, "hits": 862, "battle_avg_xp": 567, "wins": 73, "losses": 79, "damage_dealt": 176577, "no_damage_direct_hits_received": 147, "max_frags": 5, "shots": 1214, "explosion_hits_received": 73, "tanking_factor": 0.24 }, "stronghold_defense": { "spotted": 37, "battles_on_stunning_vehicles": 0, "max_xp": 1821, "direct_hits_received": 580, "explosion_hits": 2, "piercings_received": 389, "piercings": 435, "xp": 64541, "survived_battles": 33, "dropped_capture_points": 173, "hits_percents": 81, "draws": 0, "max_xp_tank_id": 16897, "battles": 89, "damage_received": 158332, "max_frags_tank_id": 16897, "frags": 60, "stun_number": 0, "capture_points": 118, "stun_assisted_damage": 0, "max_damage_tank_id": 12049, "max_damage": 6121, "hits": 727, "battle_avg_xp": 725, "wins": 42, "losses": 47, "damage_dealt": 167991, "no_damage_direct_hits_received": 191, "max_frags": 4, "shots": 899, "explosion_hits_received": 144, "tanking_factor": 0.43 }, "historical": { "spotted": 2, "battles_on_stunning_vehicles": 0, "max_xp": 549, "avg_damage_blocked": 366.67, "direct_hits_received": 26, "explosion_hits": 0, "piercings_received": 19, "piercings": 16, "max_damage_tank_id": 529, "xp": 1210, "survived_battles": 0, "dropped_capture_points": 0, "hits_percents": 55, "draws": 1, "max_xp_tank_id": 529, "battles": 3, "damage_received": 2840, "avg_damage_assisted": 147.67, "max_frags_tank_id": 529, "avg_damage_assisted_track": 37.67, "frags": 2, "stun_number": 0, "avg_damage_assisted_radio": 110.0, "capture_points": 0, "stun_assisted_damage": 0, "max_damage": 1776, "hits": 29, "battle_avg_xp": 403, "wins": 1, "losses": 1, "damage_dealt": 2746, "no_damage_direct_hits_received": 7, "max_frags": 2, "shots": 53, "explosion_hits_received": 0, "tanking_factor": 0.37 }, "team": { "spotted": 583, "battles_on_stunning_vehicles": 0, "max_xp": 2346, "avg_damage_blocked": 386.41, "direct_hits_received": 3384, "explosion_hits": 3, "piercings_received": 2487, "piercings": 3026, "max_damage_tank_id": 5377, "xp": 469610, "survived_battles": 266, "dropped_capture_points": 1622, "hits_percents": 76, "draws": 22, "max_xp_tank_id": 5377, "battles": 654, "damage_received": 679073, "avg_damage_assisted": 215.98, "max_frags_tank_id": 11537, "avg_damage_assisted_track": 62.94, "frags": 548, "stun_number": 0, "avg_damage_assisted_radio": 153.05, "capture_points": 1165, "stun_assisted_damage": 0, "max_damage": 4168, "hits": 4071, "battle_avg_xp": 718, "wins": 339, "losses": 293, "damage_dealt": 853702, "no_damage_direct_hits_received": 897, "max_frags": 5, "shots": 5345, "explosion_hits_received": 4, "tanking_factor": 0.32 }, "frags": null }, "nickname": "DEFSKIDROW", "ban_info": null, "logout_at": 1498158926 } } };
        var account_id = "500995666";
        console.log(dat.data[account_id].client_language);
    </script>
Da sagt er mir leider immer Objext undifinied. Das selbe hatte ich auch schon probiert
 
Habe es endlich hinbekommen :) Danke @Sempervivum für deine Geduld. Ich habe einen Syntaxerror gehabt, den er mir nicht angezeigt hat. Dadurch hat das ganze nicht geklappt. @Tronjer du mir leid das ich deinen Vorschlag nicht genommen habe, das selbe hatte ich auch aus Github geladen, ist für mich aber komplizierter.
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben