Maison >développement back-end >C++ >Comment valider les chaînes JSON à l'aide de JSON.NET et d'autres méthodes ?
Utilisez JSON.NET pour valider les chaînes JSON
Garantir la validité des chaînes JSON est essentiel pour l'intégrité des données. Voici comment y parvenir en utilisant JSON.NET :
Utiliser du code avec un bloc Try-Catch :
L'approche recommandée consiste à analyser la chaîne dans un bloc try-catch et à gérer toutes les exceptions qui se produisent lors de l'analyse. Un exemple est le suivant :
<code class="language-csharp">using Newtonsoft.Json; public static bool IsValidJson(string strInput) { try { var obj = JToken.Parse(strInput); return true; } catch (JsonReaderException jex) { Console.WriteLine(jex.Message); return false; } catch (Exception ex) { Console.WriteLine(ex.ToString()); return false; } }</code>
Vérifier la structure d'un objet ou d'un tableau :
Pour améliorer encore la validation, vérifiez si la chaîne commence par "{" (pour les objets) ou "[" (pour les tableaux) et se termine respectivement par "}" ou "]". Cela garantit une structure JSON correcte avant l’analyse.
<code class="language-csharp">... if ((strInput.StartsWith("{") && strInput.EndsWith("}")) || (strInput.StartsWith("[") && strInput.EndsWith("]"))) { ... } ...</code>
Alternative : utilisez l'espace de noms System.Json :
Si vous ne parvenez pas à utiliser JSON.NET, vous pouvez utiliser l'espace de noms System.Json dans .Net Framework 4.5. Un exemple est le suivant :
<code class="language-csharp">using System.Json; string jsonString = "someString"; try { var tmpObj = JsonValue.Parse(jsonString); } catch (FormatException fex) { Console.WriteLine(fex); } catch (Exception ex) { Console.WriteLine(ex.ToString()); }</code>
Options sans code : outils en ligne :
Pour valider rapidement les petites chaînes JSON, des outils en ligne comme JSONLint sont utiles. Vous pouvez également utiliser un site comme json2csharp.com pour générer des classes de modèles et utiliser JSON.NET pour désérialiser le 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!