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?
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!