rätt node anrop i datastrukturen via Ajax
Hej!
Jag använder en plugin för ajax/proxy och lagrar proxyn hos google. Funkar fint, men det jag undrar över är om någon vet hur jag ska skriva noden jag vill åt?
https://api.sl.se/api2/realtimedeparturesv4.json
$.ajax({
crossOrigin: true,
url: url,
success: function(data) {
T ex: console.log(data.result); funkar bra då jag får ut all data i chromes console log. Men om jag vill nå t ex första posten och se "tunnelbanans gröna linje", borde det väl kunna skrivas så här:
data.result.ResponseData.Metros[0].GroupOfLine
Denna väg har jag hittat via postman, men det funkar inte, så därför undrar jag om någon har tips?
Jag använder en plugin för ajax/proxy och lagrar proxyn hos google. Funkar fint, men det jag undrar över är om någon vet hur jag ska skriva noden jag vill åt?
https://api.sl.se/api2/realtimedeparturesv4.json
$.ajax({
crossOrigin: true,
url: url,
success: function(data) {
T ex: console.log(data.result); funkar bra då jag får ut all data i chromes console log. Men om jag vill nå t ex första posten och se "tunnelbanans gröna linje", borde det väl kunna skrivas så här:
data.result.ResponseData.Metros[0].GroupOfLine
Denna väg har jag hittat via postman, men det funkar inte, så därför undrar jag om någon har tips?
Följ inlägget
0
följare
Jag antar att ditt anrop mot https://api.sl.se/api2/realtimedeparturesv4.json också innehåller din nyckel och ett siteid som parametrar för att få fram intressant data och inte bara ett felmeddelande. Gör anropet inte det så kan du hitta ett exempel i dokumentationen om hur anropet kan se ut.
Svaret man får tillbaka från anropet är en textsträng i JSON-format. För att kunna nå variabler så som du föreslår behöver du först parsa det till ett JSON-objekt. Jag tror att man kan lägga till dataType: 'json' i ajax anropet för att det i success funktionen automatiskt ska parsa resultatet.
Man kan annars använda JSON.parse() funktionen, t.ex. var returnedData = JSON.parse(data);.
// Kevin
Tack för svar. Det funkade bra då jag parsade JSON, men jag använde Google Apps som host för Proxy, samt att jag använde en jQuery plugin med namnet AJAX Cross Origin.
$(function(){
$.ajax({
crossOrigin: true,
url: url,
})
.done(successFunction)
.fail(failFunction)
function successFunction(data){
var d = JSON.parse(data.result);
//console.log(d.ResponseData.Metros[0].DisplayTime);
var myData = [];
for(var i = 0; i < 5; ++i){
var displayTime = d.ResponseData.Metros[i].DisplayTime;
myData.push("<div id='depItems'>" +
"<span id='depTime'>" + '' + displayTime + "</span>" +
'</div>');
$("#realtimedepartures").html(myData.join(''))
}
}
function failFunction(request, textStatus, errorThrown) {console.log('Funkar ej..' + request + textStatus + errorThrown)}
});
// Kevin