44 votes

Un moyen de vérifier rapidement si la chaîne est XML ou JSON en C#

J'utilise C# dans une application console et j'ai besoin d'un moyen rapide de vérifier si une chaîne renvoyée par un autre service est XML ou JSON.

Je sais que s'il ne s'agissait que de XML, je pourrais le vérifier par rapport à un schéma, ou s'il s'agissait simplement de JSON, je pourrais essayer de l'analyser avec JSON.Net, mais existe-t-il un moyen plus rapide - peut-être en utilisant des fonctions .Net intégrées - juste pour dire de quoi il s'agit avant de continuer à le traiter ?

64voto

Artyom Points 17387

Très simple:

  1. JSON valide commence toujours par '{' ou '['
  2. XML valide commence toujours par '<'

Je parle de données non spatiales.

2voto

Sam Jones Points 765

J'ai pensé que je lancerais ma solution ici aussi...

 if (jsonData.Trim().Substring(0, 1).IndexOfAny(new[] {'[', '{'}) != 0)
     throw new Exception("The source file must be in JSON format");

ou une extension...

 public static bool IsJson(this string jsonData)
{
     return jsonData.Trim().Substring(0, 1).IndexOfAny(new[] { '[', '{' }) == 0;
}

usage:

 if (!jsonData.IsJson())
     throw new Exception("The source file must be in JSON format");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X