Frage - Json C# Problemchen

  • Hallo zusammen,


    derzeit bastle ich an einem kleinen Tool um Auktionen von eBay zu listen. Sagen wir, ich habe ein Programm, womit ich auf die API von eBay zugreife um ohne mich anzumelden Auktionen einsehen kann. Das Prüfergebnis sieht beispielweise so aus.



    Ich gehe also hin und versuche das nun zu deserialisieren.


    C#
    strResponse = new HttpRequests().GetResponse(ref httpRequest, useCookie: false);
    
                ObservableCollection<Ad> dataList = JsonConvert.DeserializeObject<ObservableCollection<Ad>>(strResponse);
    
                foreach (var p in dataList)
                {
                    richTextBox1.AppendText(p.res_data.title + "\n");
                }


    Als Fehler bekomme ich immer


    Zitat

    Newtonsoft.Json.JsonSerializationException: "Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.ObjectModel.ObservableCollection`1[S_Checker.Ad]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.

    To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.

    Path 'searchOptions', line 1, position 17."


    Google zeigt mir nun zwar Lösungen, allerdings kann ich damit nicht arbeiten, da keine der Lösungen funktioniert. Hat hier eventuell Jemand ne Idee?


    Möchte das ganze so als DataTable oder so in einer Liste haben :)

  • Wieso Logs als Screenshot, wenn du die paar Zeilen hier easy mit dem Spoiler & Code BBCode super einpflegen kannst?


    Ich kann am Handy da nix lesen und es lädt super langsam...

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Versuch es mal so

    Code
    JObject jobject = (JObject)JsonConvert.DeserializeObject(strResponse);


    und dann kannst du mit

    Code
    jobject.GetValue("searchOptions")

    auf z.B. searchOptions zugreifen.




    Bzw hier findest du eig ein gutes Beispiel wie du mit JArray's und JObject's arbeiten kannst.

    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