Analyse de fichiers JSON volumineux et malformés dans .NET à l'aide de Json.NET
L'analyse de fichiers JSON volumineux peut être difficile dans .NET, surtout si le JSON est mal formé. Dans cet article, nous explorerons les défis rencontrés lors de l'analyse de très gros fichiers JSON et proposerons une solution utilisant Json.NET.
Le problème : structure de tableau imbriquée
One Le problème courant avec les gros fichiers JSON est leur structure complexe. Dans votre cas, le fichier JSON contient un tableau d'objets, mais chaque tableau est entouré de crochets qui se ferment et s'ouvrent immédiatement. Cela rend le JSON techniquement invalide lorsqu'il est pris dans son ensemble.
Utilisation de JsonTextReader avec SupportMultipleContent
Pour gérer ce format JSON malformé, Json.NET propose un paramètre spécial dans le Classe JsonTextReader. En définissant l'indicateur SupportMultipleContent sur true, nous pouvons analyser chaque élément individuellement dans une boucle.
Cette approche permet un traitement efficace en mémoire du JSON non standard, quelle que soit sa taille ou le nombre de tableaux imbriqués. Le code ci-dessous illustre cette technique :
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); } } }
Dans cet exemple, JSONTextReader vérifie d'abord le type de jeton. S'il rencontre un jeton de démarrage d'objet, il désérialise l'objet actuel en une instance Contact à l'aide de JsonSerializer. Le prénom et le nom de chaque contact sont ensuite imprimés sur la console.
Conclusion
En utilisant le paramètre SupportMultipleContent dans JsonTextReader, vous pouvez analyser efficacement les fichiers JSON volumineux et mal formés dans .FILET. Cette technique permet une utilisation efficace de la mémoire et gère des structures JSON complexes, ce qui la rend idéale pour traiter les flux de données JSON.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!