Heim >Backend-Entwicklung >C++ >Wie kann ich 'Primitive Object is Ungültiges' -Fehler auflösen, wenn die Facebook -Graph -API JSON in C#deserialisiert wird?

Wie kann ich 'Primitive Object is Ungültiges' -Fehler auflösen, wenn die Facebook -Graph -API JSON in C#deserialisiert wird?

Barbara Streisand
Barbara StreisandOriginal
2025-02-02 07:01:08684Durchsuche

How to Resolve

Fehlerbehebung C# JSON Deserialization -Fehler

Begegnung auf ein "primitives Objekt ist ungültig" Fehler, während eine JSON -Antwort von der Facebook -Graph -API (Friends List) deserialisiert wird? Dieser Leitfaden bietet eine Lösung.

1. Strukturieren Sie Ihre C# -Kassen:

Um die JSON -Daten korrekt zuzuordnen, definieren Sie die passenden C# -Klasse. Die Struktur muss die verschachtelten Objekte und Arrays des JSON widerspiegeln.

<code class="language-csharp">public class FacebookFriendsResponse
{
    public List<FacebookFriend> data { get; set; }
}

public class FacebookFriend
{
    public string id { get; set; }
    public string name { get; set; }
}</code>

2. Deserialisierung mit JavaScriptSerializer:

Verwenden Sie die JavaScriptSerializer (verfügbar in System.Web.Script.Serialization), um die JSON -Zeichenfolge in Ihre definierte Klassenstruktur zu deverialisieren.

<code class="language-csharp">FacebookFriendsResponse facebookFriends;

// ... obtain 'result' string from Facebook API call ...

using (var js = new System.Web.Script.Serialization.JavaScriptSerializer())
{
    facebookFriends = js.Deserialize<FacebookFriendsResponse>(result);
}</code>

3. Codebeispiel und Ausgabe:

Hier ist ein vollständiges Beispiel, das den Prozess demonstriert:

<code class="language-csharp">string json = @"{""data"":[{""id"":""518523721"",""name"":""ftyft""}, {""id"":""527032438"",""name"":""ftyftyf""}, {""id"":""527572047"",""name"":""ftgft""}, {""id"":""531141884"",""name"":""ftftft""}]}";

using (var js = new System.Web.Script.Serialization.JavaScriptSerializer())
{
    FacebookFriendsResponse facebookFriends = js.Deserialize<FacebookFriendsResponse>(json);

    foreach (var friend in facebookFriends.data)
    {
        Console.WriteLine($"id: {friend.id}, name: {friend.name}");
    }
}</code>

Ausgabe:

<code>id: 518523721, name: ftyft
id: 527032438, name: ftyftyf
id: 527572047, name: ftgft
id: 531141884, name: ftftft</code>

Dieser überarbeitete Ansatz sorgt für eine genaue Zuordnung der JSON -Daten und verhindert, dass das "primitive Objekt ist ungültig" -Fehler. Denken Sie daran, potenzielle Ausnahmen während des Deserialisierungsprozesses zu bewältigen. Für neuere .NET -Projekte sollten Sie Newtonsoft.Json für eine robustere JSON -Handhabung verwenden.

Das obige ist der detaillierte Inhalt vonWie kann ich 'Primitive Object is Ungültiges' -Fehler auflösen, wenn die Facebook -Graph -API JSON in C#deserialisiert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn