Detta inlägg är gammalt och kan innehålla inaktuell information.

SL realtid2

Hej!

När jag kör SL realtid 2, så får jag olika retur-strukturer i JSON beroende på om det finns ett eller flera svar på en fråga (per returtyp). Dvs om det finns en avgång i t ex listan för Tram så får jag Key-Value direkt, om flera så får jag en ny lista med Key-Value. Dvs den hoppar över en nivå i JSON-strukturen om det bara finns ett svar. Har bara kollat detta på returtyp Tram (kanske funkar annorlunda på andra returobjekt).
Kan tänka mig att det är ok om man kör XML att fånga svaret men i JSON förstår jag inte hur man löser det.
Någon som har löst detta?

Kommentarer

  • Hej!

    Ja, det stämmer det du säger att, finns en avgång så returneras ett Key-Value svar men finns flera avgångar returneras en lista med Key-Value svar.

    Detta är något som skapas hos vår leverantör och inget vi kan ändra direkt, tyvärr. Vi antecknar detta och ska se vad som kan göras.

    /Martin

    Team Trafiklab
  • Hej,

    Jag får en lista som ser korrekt ut både för resultat med 1 och med flera avgångar i svaret för t.ex. tram.

    Kan du ge ett exempel på JSON som ser fel ut?

    Detta är en del av det jag får vid sökning på t.ex. 9001:
    "Trams": [
    {
    "Destination": "DJURGÅRDEN Waldemarsudde",
    "Deviations": [],
    "DisplayTime": "2 min",
    "ExpectedDateTime": "/Date(1401715440000+0200)/",
    "LineNumber": "7",
    "SiteId": 9001,
    "StopAreaName": "Sergels torg",
    "StopAreaNumber": 4301,
    "StopPointDesignation": "",
    "StopPointNumber": 4301,
    "TimeTabledDateTime": "/Date(1401715440000+0200)/",
    "TransportMode": "TRAM",
    "GroupOfLine": "Spårväg City",
    "JourneyDirection": 1
    }
    ]

    När jag söker på 9112:
    "Trains": [],
    "Trams": [
    {
    "Destination": "Solna centrum",
    "Deviations": [],
    "DisplayTime": "15:29",
    "ExpectedDateTime": "/Date(1401715740000+0200)/",
    "LineNumber": "22",
    "SiteId": 9112,
    "StopAreaName": "Alvik",
    "StopAreaNumber": 4525,
    "StopPointDesignation": "5",
    "StopPointNumber": 4525,
    "TimeTabledDateTime": "/Date(1401715740000+0200)/",
    "TransportMode": "TRAM",
    "GroupOfLine": "Tvärbanan",
    "JourneyDirection": 1
    },
    {
    "Destination": "Sickla udde",
    "Deviations": [],
    "DisplayTime": "15:29",
    "ExpectedDateTime": "/Date(1401715740000+0200)/",
    "LineNumber": "22",
    "SiteId": 9112,
    "StopAreaName": "Alvik",
    "StopAreaNumber": 4525,
    "StopPointDesignation": "6",
    "StopPointNumber": 4526,
    "TimeTabledDateTime": "/Date(1401715740000+0200)/",
    "TransportMode": "TRAM",
    "GroupOfLine": "Tvärbanan",
    "JourneyDirection": 2
    }
    ]

  • Hej!
    Problemet verkar (åtminstone) uppträda då det bara finns 1 avgång i Trams på station 9192, se bifogad json retur (först bussar som kommer med rätt struktur och sedan trams med fel):

    {
    "DPS": {
    "xmlnsxsi": "http://www.w3.org/2001/XMLSchema-instance",
    "xmlnsxsd": "http://www.w3.org/2001/XMLSchema",
    "xmlns": "http://www1.sl.se/realtidws/",
    "LatestUpdate": "2014-06-03T22:05:53.7909363+02:00",
    "ExecutionTime": "00:00:00.7656250",
    "Buses": {
    "DpsBus": [
    {
    "SiteId": "9192",
    "StopAreaNumber": "10149",
    "TransportMode": "BUS",
    "StopAreaName": "Slussen",
    "LineNumber": "409",
    "Destination": "Duvnäs utskog",
    "TimeTabledDateTime": "2014-06-03T22:05:00",
    "ExpectedDateTime": "2014-06-03T22:05:00",
    "DisplayTime": "0 min"
    },
    {
    "SiteId": "9192",
    "StopAreaNumber": "10149",
    "TransportMode": "BUS",
    "StopAreaName": "Slussen",
    "LineNumber": "43",
    "Destination": "Tanto",
    "TimeTabledDateTime": "2014-06-03T22:34:00",
    "ExpectedDateTime": "2014-06-03T22:34:00",
    "DisplayTime": "28 min"
    },
    {
    "SiteId": "9192",
    "StopAreaNumber": "10149",
    "TransportMode": "BUS",
    "StopAreaName": "Slussen",
    "LineNumber": "409",
    "Destination": "Duvnäs utskog",
    "TimeTabledDateTime": "2014-06-03T22:35:00",
    "ExpectedDateTime": "2014-06-03T22:35:00",
    "DisplayTime": "22:35"
    }
    ]
    },
    "Metros": {
    },
    "Trains": {
    },
    "Trams": {
    "DpsTram": {
    "SiteId": "9192",
    "StopAreaNumber": "0",
    "TransportMode": "TRAM",
    "StopAreaName": "Slussen",
    "LineNumber": "25",
    "Destination": "Saltsjöbaden",
    "TimeTabledDateTime": "2014-06-03T22:30:00",
    "ExpectedDateTime": "2014-06-03T22:30:00",
    "DisplayTime": "22:30",
    "JourneyDirection": "1",
    "GroupOfLine": "Saltsjöbanan"
    }
    }
    }
    }

  • Hej,

    Det json svar du postat kommer från det äldsta av SL's realtid's api'er och inte realtid2.

    Jag har för mig att detta är något som trafiklab konverterar från xml till json.

  • Stort tack Daniel - av alla checkups man borde ha gjort så hade jag glömt just den... det förklarar en hel del om man säger så :-) Själv har jag levt i tron om att det var api:et för realtid2 som jag körde... you made my day!! Thx!

Kommentera eller skriv ett nytt inlägg

Ditt namn och inlägg kan ses av alla. Din e-post visas aldrig publikt.