Laden...

JSON Parser deserializing Problem

Erstellt von seltesh vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.740 Views
S
seltesh Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren
JSON Parser deserializing Problem

Hallo zusammen,

bin neu im Forum und das ist mein erster Post. Nun zu meinem Anliegen. In einem Studi-Projekt schreibe ich ein Facebook-Message Crawler, um eine Sentiment-Analyse durchzuführen. Dafür nutze ich die Facebook Graph Api(JSON Notation) und das JSON.NET Framework.

public void facebookData()
        {
            string url = "http://graph.facebook.com/search?q=BMW&type=post";
            WebClient wc = new WebClient();
            string result = "";
            try
            {
                
                result = wc.DownloadString(url);
                facebookCrawler(result);
                JObject objekt = JObject.Parse(result);
                JArray data = (JArray)objekt["data"];
                Console.WriteLine(data);

                string message = (string)objekt["message"];
                Console.WriteLine(message);
                
    
              
            }
            catch (System.Net.WebException ex)
            {
                StreamReader readStream = new StreamReader(ex.Response.GetResponseStream());
                
            }

        }

Die data-Schlüssel kann ich Parsen aber message kann ich nicht Parsen. Liegt es daran, dass es mehrere Schlüssel mit dem selben Namen gibt oder wegen der Verschachtelung? Hat jemand eine Idee

Vielen Dank vorab.

Seltesh

16.807 Beiträge seit 2008
vor 10 Jahren

Es gibt für C# eine Facebook API, mit der Du nicht mehr viel tun musst - außer den AuthToken.
Json serialisiert man am besten mit Newtonsoft.Json und alles andre sollte ja dann kein Problem sein.

Was Deine mit der Message soll: Du erklärst nichst, zeigst keine passenden Daten, die zu einem Fehler passen noch gibst Du den Fehler an sich im Wortlaut wieder.

Beachte [Hinweis] Wie poste ich richtig? Punkt 5

S
seltesh Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren

Hallo Abt

danke für den freundlichen Hinweis bzgl. Posting. Das hatte ich mir bereits durchgelesen.

Dafür nutze ich die Facebook Graph Api(JSON Notation) und das JSON.NET Framework.

Hier erwähne ich m.E. dass ich Newtonsoft.Json verwende. Eine Fehlermeldung gibt es nicht.

Die data-Schlüssel kann ich Parsen aber message kann ich nicht Parsen

Hier drücke ich m.E die Problematik in Worten aus. Ich poste ja auch ne fertige Methode, aus der man auch einige Informationen entnehmen kann.

seltesh

16.807 Beiträge seit 2008
vor 10 Jahren

Nein, Du zeigst nicht den Inhalt, was Du parsen willst und Du kannst nicht von jedem erwarten, dass er die Facebook Graph API ausführt, um Dir zu helfen.
Also musst Du uns ein wenig mehr Infos geben.

S
seltesh Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren

Naja zwar nicht wirklich produktiv aber wenn es helfen soll. Hier die Ausgabe des Code-Ausschnitts als Bild im Anhang. Ich möchte die "message" in eine Arraylist (anschließend in eine DB) speichern.

16.807 Beiträge seit 2008
vor 10 Jahren

Naja, das sieht man ja, wieso das nicht geparst werden kann: ungültiges Json.

"message" : ""Ent......

Da ist nen doppeltes Anführungszeichen - so nicht erlaubt.
Sicher, dass Du hier mit Json Rohdaten arbeitest? Was macht FacebookCrawler? Scheint nichts offizielles zu sein (weswegen ich Dich auf die C# Facebook SDK hingewiesen habe).

S
seltesh Themenstarter:in
4 Beiträge seit 2013
vor 10 Jahren

Das doppelte Anführungszeichen ist eine Ausnahme in der einen Nachrichte weiter unten ist es nicht so. Die Facebook SDK konnte in VS nicht einbinden es entstehen Fehler bei den Verweisen.

1.346 Beiträge seit 2008
vor 10 Jahren

Ob das eine Ausnahme ist oder nicht interessiert JSon.net recht wenig. Dadurch ist das Json invalid und kann nicht geparst werden

16.807 Beiträge seit 2008
vor 10 Jahren

Das C# Facebook SDK funktioniert wunderbar. Habe ich auch in Verwendung.
Es wird also viel mehr an Deiner Handhabung liegen.