2012-01-07 78 views
6

Im usando newtonsoft json.net http://json.codeplex.com/ y me gustaría saber ...Comprobar JSON y XML es válido? C#

cómo validar JSON y XML son válidos JSON/XML.

¿cómo puedo verificar esto?

+0

para JSON ver [Cómo asegurarse de que la cadena es JSON válida utilizando JSON.NET] (http://stackoverflow.com/a/14977915) –

Respuesta

7

Donde quiere validar json, en el servidor o en el lado del cliente. Suponiendo que desea hacerlo en el lado del servidor, intente deserializar la cadena json. si se rompe, entonces no es un json válido. Utilice JavaScriptSerializer para deserializar propósito

var serializer = new JavaScriptSerializer(); 
var result = serializer.Deserialize<Dictionary<string, object>>(json); 
1

Si está utilizando el software JSON.net, usted podría hacer exactamente como se dijo Anand. Simplemente deserialice la cadena JSON y si se rompe o se produce un error, entonces no es una estructura JSON válida. Ahora, si intentas hacer algo como http://jsonlint.com/, entonces probablemente estás yendo más allá del alcance de lo que podríamos ayudarte en los foros. Si quería comprobar si los errores hacia fuera o no, sólo tiene que utilizar el siguiente código en C#, donde resultado es la cadena JSON:

var root = JsonConvert.DeserializeObject<RootObject>(result); 

donde la información que desea deserializar de la cadena JSON tendría que tener una clase de RootObject que es similar a:

public class RootObject 
{ 
    // You would need to create items here to store each of the objects' information in the JSON file. 
    // For example: 
    public string itemName { get; set; } 
    public int itemID { get; set; } 
} 

Ahora bien, esto es suponiendo que se conoce la información que debe estar en el archivo JSON. De lo contrario, es un programa completo en sí mismo.

+1

Sería interesante saber cuál es la definición de "roturas o errores" es aquí. Observé que el documento XML para JsonConvert.DeserializeObject() no dice qué excepción se produce si alguno ... – PandaWood

Cuestiones relacionadas