2012-08-06 43 views
6

¿hay alguna manera de validar una cadena para ser json o no? que no sea try/catchValidar una cadena para ser json o no en asp.net

Estoy usando ServiceStack Json Serializer y no pude encontrar un método relacionado con la validación.

+0

posible duplicado de [Comprobar JSON y XML es válido? C#] (http://stackoverflow.com/questions/8766974/check-json-and-xml-is-valid-c-sharp) –

+0

esa solución usa try/catch. Estoy buscando un método como TryParse que tenemos para int, date, .... solo para verificar si string contiene una estructura json válida o no –

+0

Posible duplicado de [Cómo asegurarse de que la cadena sea JSON válida usando JSON.NET] (http://stackoverflow.com/questions/14977848/how-to-make- sure-that-string-is-valid-json-using-json-net) –

Respuesta

14

Probablemente, la forma más rápida y más sucio es comprobar si la cadena comienza con '{':

public static bool IsJson(string input){ 
    input = input.Trim(); 
    return input.StartsWith("{") && input.EndsWith("}") 
      || input.StartsWith("[") && input.EndsWith("]"); 
} 

Otra opción es que se podría tratar de usar la clase JavaScriptSerializer:

JavaScriptSerializer ser = new JavaScriptSerializer(); 
SomeJSONClass = ser.Deserialize<SomeJSONClass >(json); 

O puede echar un vistazo a JSON.NET:

0

Puede encontrar un par de expresiones regulares para validar JSON aquí: Regex to validate JSON

Está escrito en PHP, pero debe ser adaptable a C#.

1

Un fragmento de código de trabajo

public bool isValidJSON(String json) 
{ 
    try 
    { 
     JToken token = JObject.Parse(json); 
     return true; 
    } 
    catch (Exception ex) 
    { 
     return false; 
    } 
} 

Source

Cuestiones relacionadas