Syntax Hilfe mit Newtonsoft

  • C#

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Syntax Hilfe mit Newtonsoft

    Ich versuche mich gerade wieder mit Json Parser für die Ausbildung auseinander zu setzen, dabei möchte ich das ganze so vereinfacht lösen wie möglich
    Ich greife auf die LOL API zu, da sie sehr gut zum üben geeignet ist.


    Ich habe mir eine einfache webrequest klasse erstellt, die folgende methode besitzt.

    C#-Quellcode

    1. class WebRequestDownload
    2. {
    3. public string anfordern (string newLink){
    4. var newUri = new Uri(newLink);
    5. var newWebRequest = WebRequest.Create(newUri);
    6. var newHttpWebRequest = (HttpWebRequest)newWebRequest;
    7. HttpWebResponse newRespone = (HttpWebResponse)newHttpWebRequest.GetResponse();
    8. StreamReader newStream = new StreamReader(newRespone.GetResponseStream());
    9. return newStream.ReadToEnd();
    10. }
    11. }


    Mein Ziel ist es eine Methode zu erstellen, bei der ich verschiedene Request dynamisch anfragen kann

    C#-Quellcode

    1. class player
    2. {
    3. public List<SummonerName> data { get; set; }
    4. public string auslesen (WebRequestDownload newAnfoderung, string link, string key ){
    5. WebRequestDownload test = new WebRequestDownload();
    6. key = "testkey"; // nur als beispiel
    7. link = "https://euw1.api.riotgames.com/lol/summoner/v3/summoners/by-name/username?api_key="; // nur als bespiel, da sie eigentlich als parameter mitgegeben werden.
    8. string newRequest = newAnfoderung.anfordern(link + key);
    9. // var result= JsonConvert.DeserializeObject<SummonerName>(link);
    10. foreach ( var item in data )
    11. {
    12. // Hier möchte ich die jeweiligen items (siehe klasse unten) aufrufen
    13. }
    14. }
    15. }
    16. public class SummonerName
    17. {
    18. public int profileIconId{get; set;}
    19. public string name { get; set; }
    20. public string summonerLevel { get; set; }
    21. public int accountId { get; set; }
    22. public int id { get; set; }
    23. public long revisionDate { get; set; }
    24. }

    Ich möchte später in meiner Hauptklasse einfach, die methode mit der jeweiligen "item Klasse" anfragen.

    bis auf die verschiedenen Item Klassen, ist das prozedere nämlich immer gleich und so könnte ich mir jede menge text sparen.

    Ich hoffe, ihr versteht mein anliegen und könntet mir einen kleinen stoß geben.

    wamborambo schrieb:

    bis auf die verschiedenen Item Klassen, ist das prozedere nämlich immer gleich
    mir scheint, neben den Item-Klassen dürfte auch die jeweilige url immer eine annere sein, odr?

    Wenn dem so ist, und diese beiden "Parameter" sind die einzigen Variabilitäten eines ansonsten immer gleichen Vorgangs, dann ergäbe sich eine generische Methode, die alles abdeckt, ungefähr mit dieser Signatur:

    C#-Quellcode

    1. public <T> GetItemList(string url) {
    2. return JsonConvert.DeserializeObject<T>(blabla); // iwas in der Art
    3. }

    @ErfinderDesRades: die syntax kenn ich gar nicht. Ist das neu? Bzw. geht die wirklich?
    Ich kenn nur so:

    C#-Quellcode

    1. public T GetItemList<T>(string url)

    Edit: oder war das gar um c&p zu verhindern?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---