C# verarbeitung von JSON

  • Hallo liebe Brotfische,


    heute mal ein Anliegen im Bereich C# von mir. Gerne möchte ich Daten aus dem Webbrowser via PHP Api aufrufen und in Textboxen füllen.

    Leider finde ich nichts passendes um den Wert zu splitten und entsprechend einzufügen.


    Hat jemand eine Idee wie dass ganze funktioniert ? Zunächst einmal sollen 5 Texte in Labels hinzugefügt werden. Allerdings ist der Json String natürlich länger und es sollen später 5 weitere Werte ausgelesen werden.


    Würde mich über jede Hilfe freuen.


    Den Download führe ich aktuell wie folgt durch


    Code
    WebClient client = new WebClient();
    string strPageCode = client.DownloadString("domain");
    dynamic dobj = JsonConvert.DeserializeObject<dynamic>(strPageCode);
  • Wir haben bspw folgenden JSON String

    Code
    [{"id":"1","name":"Max","nachname":"Mustermann"}, {"id":"2","name":"Beate","nachname":"Musterfrau"}]


    Nun möchte ich bspw den Namen, Nachnamen von ID 1 jeweils getrennt voneinerander herauskriegen und in 2 Labels einfügen, also ein Label mit dem Vornamen und ein Label mit dem Nachnamen.

    Der Wert von ID 2 soll vorerst nicht behandelt werden ohne dass eine erneute Eingabe erfolgt, aber dass sollte denke nicht das Problem sein wenn ich erstmal weiß wie ich dass ganze von ID 1 überhaupt herauskriege.


    Also ich möchte nicht dass nach dem Komma gesplittet wird. Sondern die Einzelnen Teile von name und nachname herausfinden.

  • Du kannst den JSON string in ein JArray umwandeln (JArray.Parse ) und dieses JArray ganz gewöhnlich iterierieren um so an ID, Name, Vorname zu kommen .



    Die JObjects in dem JArray bestehen aus Key/Value Paaren. Also zum Beispiel Key "Id" und Value "1"


    Anstatt es zu iterieren kannst du auch direkt a la Object["id"] auf die id zugreifen. Je nachdem wie du es brauchst.


    Also wenn ich deine Frage richtig verstehe ist dein Problem einfach nur "Wie parse ich einen json string in c#? "

    https://stackoverflow.com/questions/12676746/parse-json-string-in-c-sharp#12677237

  • Hallo,


    nochmal ein paar Fragen dazu weil ich es scheinbar nicht hinbekomme. Wie kann ich nun mit der ID arbeiten ? Ich kann aktuell nur 0 verwenden und dies ergibt mir natürlich auch nicht den erwarteten Wert.

    Code
    WebClient client = new WebClient();
                string strPageCode = client.DownloadString("api.php?login&fahrerid=1");
                JArray a = JArray.Parse(strPageCode);
                label11.Text = a[0].ToString();

    Online finde ich leider nur vieles mit Schleifen aber dass hilft mir bei meinem Vorhaben nicht wirklich.


    Bräuchte da nochmal Rat oder einen Tipp.

    Einmal editiert, zuletzt von BreadScript () aus folgendem Grund: Url entfernt

    • Hilfreich

    Hier ist eigentlich genau das was du brauchst.

    How to access elements of a JArray (or iterate over them)
    I have the following Json gotten from Twitter + token {[ { "trends": [ { "name": "Croke Park II", "url":…
    stackoverflow.com


    Code
    label11.Text = a[0].ToString();


    Das funktioniert so noch nicht.

    Du musst auch key/values von a[0] zugreifen. Weil a[0] ist ein JObject.



    P. S

    Kannst auch hier mal rein schauen, da wurde auch mit JArrays gearbeitet: Frage - Json C# Problemchen