¿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.
¿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.
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:
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#.
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;
}
}
posible duplicado de [Comprobar JSON y XML es válido? C#] (http://stackoverflow.com/questions/8766974/check-json-and-xml-is-valid-c-sharp) –
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 –
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) –