2016-03-22 7 views
0

Ich arbeite an einer API-Anwendung, die die Foursquare-API verwendet. Unter Verwendung meiner getRequest, Ich bekomme meine Ergebnisse in JSON, die Anzeige in meinem Konsole .log.Kann JSON-Daten in HTML-Seite nicht anzeigen

Die Sache ist, ich weiß nicht, wie die JSON-Daten zu analysieren und zeigen, was ich will auf meiner HTML-Seite.

Ich versuche, die "Name" der Veranstaltungsorte angezeigt zu haben, aber ich weiß nicht, wie es geht.

P. S: Ich habe eine Math.random Funktion der eingehenden Daten von Foursquare, so was auch immer zufällig Veranstaltungsort Namen, der in meinem console.log angezeigt wird, was ich in meiner HTML-Seite angezeigt werden soll.

HTML:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Search</title> 
<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> 
<link href='http://fonts.googleapis.com/css?family=Comfortaa' rel='stylesheet' type='text/css'> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.2/jquery.min.js" type="text/javascript" id="jquery"></script> 
<script type="text/javascript" src="apps/app.js"></script> 

</head> 

    <body> 

     <H1>Hunger Pains</H1> 
      <p>Search for food cause you cant take it anymore</p> 

      <!--This is the area your location gets spit out on the html page--> 
      <p id="demo"></p> 

      <form id ="search-term"> 

      <!--text entry field- 
      <input type="text" id="query">--> 

      <!--Submit button--> 
      <input id="submit" type="submit" value="submit"> 

      <!--Search results div--> 
      <div id="search-results"></div> 


      </form> 
    </body> 
</html> 

JQuery:

$(document).ready(function(){ 

//document.getElementById("submit").disabled = false; 

//When you click the submit button it fires off the getRequest. 
$(function(){ 
    $('#search-term').submit(function(event){ 
    event.preventDefault(); 
    //getRequest(); 
     myFunction(); 


    }); 
}); 

// This is the get request. It has a random function that randomizes the callback data. Once you get the randomizes data, it shows in the console window. 
//This function displays three random results based on the myFunction below 
function getRequest(){ 

    $.getJSON('https://api.foursquare.com/v2/venues/search?v=20131016&ll=40.7%2C-74&intent=browse&radius=800&categoryId=4d4b7105d754a06374d81259&client_id=C2IEUINHBL2HEVOHIWNO0GGN5EUHK3PGYH03HCZRP2ETA4CF&client_secret=DOLF3UBQZOY5GX2DP3EXBQ5CW4AHEWMNDGRMH0IHJWZBDSIO', function(data){ 
    var random = data.response.venues[Math.floor(Math.random() * data.response.venues.length)]; 
    //showResults(); 
    console.log(random); 

    }); 

} 

//This is the function that calls getRequest function three times then stops. 

    function myFunction(){ 
    var myVar = setInterval(function(){getRequest();}, 500); 
    //clearTimeout(myVar); 
    setTimeout(function() { clearInterval(myVar); }, 1600); 
} 

}); 
+0

nur raten, aber wahrscheinlich 'random.name'. – Barmar

+0

Das 'O' in JSON ist für Objekt. Sie erhalten ein Objekt zurück und es verfügt über Eigenschaften, so dass Sie es genau wie @Barmar verwenden können. Sie können Ihre 'console.log (random)' durch 'console.log (random.name)' ersetzen, um den Namen des zufälligen Unternehmens auszudrucken. – LinuxDisciple

+0

Super! Das hat total funktioniert. So eine einfache Antwort, und ich habe mir das Kopfzerbrechen gemacht. Danke vielmals. – thesubhuman

Antwort

1

So etwas sollte es tun:

$("#search-results").append('<br>' + random.name); 
+0

Perfekt. Das funktioniert auch. Vielen Dank, Bande! – thesubhuman

+0

Nur etwas realisiert. Meine Konsole zeigt 3 Objekte an. Wenn ich folgendes benutze: $ ("# search-results"). Text (random.name); Meine HTML-Seite zeigt nur einen Veranstaltungsort an. Wie kann ich erreichen, dass alle drei gleichzeitig angezeigt werden? – thesubhuman

+0

Ich habe die Antwort geändert, um 'append' zu verwenden, damit es nicht den alten Inhalt des Ergebnis-DIV ersetzt. – Barmar

1

Um den Namen von dem Objekt erhalten Sie von Foursquare Einsatz bekommen:

console.log(random.name);

Und wenn Sie die URL zum Beispiel den Einsatz benötigen:

console.log(random.url);

+0

Verstanden. Vielen Dank! – thesubhuman

Verwandte Themen