Währungskurs sekundengenau auslesen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von LaMiy.

    @AndreHM Das hab ich letzte Woche noch gemacht.
    Ich fände es jetzt etwas schwach dir den Code direkt zu geben also hier mal eine Erklärung.
    Die Kurse findest du hier db-markets.com/dbmserver/ticker/quotes als JSON-Format.
    Um den JSON-String auszulesen habe ich WebClient.DownloadStringAsync(new Uri("http://....")) benutzt.
    Dann habe ich ein Event registriert, welches ausgelöst wird wenn der Download fertig ist. Zusätzlich hat die Klasse ein Event, welches dann wie gesagt in der Methode, wenn der Download fertig ist, ausgelöst wird.
    In einer anderen Klasse habe ich dann diese Clientklasse aufgerufen, das Event registriert und den Quelltext runtergeladen.
    In der entsprechenden Behandlermethode dieses Events habe ich dann mittels Newtonsoft.Json (NuGet: nuget.org/packages/Newtonsoft.Json/6.0.1)
    Falls du nicht weißt wie man NuGet-Pakete installiert musst du einfach mal nach googeln :)
    Ich habe es so gemacht. List<IData> data = JsonConvert.DeserializeObject<List<IData>>(e.Result, new DataConverter());
    und dann den entsprechenden Eintrag mit LINQ. var result = (from d in data where d.name == "EURUSD" select d.actual.mid).Min();
    Wenn du LINQ nicht kennst/kannst solltest du mit einer For-Schleife durch die Liste gehen und wenn der name "EURUSD" ist dir actual.mid holen.
    Um das Konzept nochmal zu veranschaulichen das Klassendiagramm im Anhang.

    Grüße :)

    PS: Hier noch der DataConverter (Ist jetzt C#, aber das solltest du verstehen, sonst nach c# to vb googeln)

    C#-Quellcode

    1. /// <summary>
    2. /// Stellt einen Konverter für das Konvertieren der geladenen Daten dar.
    3. /// </summary>
    4. public class DataConverter : CustomCreationConverter<IData>
    5. {
    6. public override IData Create(Type objectType)
    7. {
    8. return new Data();
    9. }
    10. }
    Bilder
    • Class.png

      42,21 kB, 924×555, 130 mal angesehen