Das Parsen großer JSON-Dateien kann in .NET eine Herausforderung sein, insbesondere wenn die JSON-Struktur nicht dem Standard entspricht . Ein häufiges Problem bei der Verwendung der JsonConvert.Deserialize-Methode besteht darin, dass sie bei großen Dateien eine Ausnahme auslösen kann.
Dieses Problem tritt normalerweise auf, wenn die JSON-Datei ein Array enthält, gefolgt von einem anderen Array ohne Trennzeichen. Dieses Format ist in JSON ungültig, was dazu führt, dass JsonConvert.Deserialize fehlschlägt.
Um dieses Problem zu beheben, stellt Json.NET die JsonTextReader-Klasse bereit, die eine flexiblere Analyse von JSON-Inhalten ermöglicht. Indem wir das SupportMultipleContent-Flag in JsonTextReader auf true setzen, können wir mehrere Arrays aus einer einzelnen JSON-Datei als separate Objekte analysieren.
Hier ist ein aktualisiertes Codebeispiel, das diese Technik demonstriert:
using (WebClient client = new WebClient()) using (Stream stream = client.OpenRead(stringUrl)) using (StreamReader streamReader = new StreamReader(stream)) using (JsonTextReader reader = new JsonTextReader(streamReader)) { reader.SupportMultipleContent = true; var serializer = new JsonSerializer(); while (reader.Read()) { if (reader.TokenType == JsonToken.StartObject) { Contact c = serializer.Deserialize<Contact>(reader); Console.WriteLine(c.FirstName + " " + c.LastName); } } }
Dieser Ansatz ermöglicht es uns, die nicht standardmäßige JSON-Datei speichereffizient zu analysieren, unabhängig von der Anzahl der Arrays oder Elemente in jedem Array. Der in der Frage bereitgestellte Beispiel-JSON kann mit dieser Technik erfolgreich verarbeitet werden.
Eine vollständige Demonstration finden Sie unter dem folgenden Link: https://dotnetfiddle.net/2TQa8p
Das obige ist der detaillierte Inhalt vonWie kann ich große JSON-Dateien mit mehreren Arrays in .NET effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!