2012-08-06 12 views
6

c'è un modo per convalidare una stringa per essere json o no? diverso da provare/prendere.Convalida una stringa per essere json o non in asp.net

Sto usando ServiceStack Json Serializer e non sono riuscito a trovare un metodo correlato alla convalida.

+0

possibile duplicato del [Verifica JSON e XML è valido? C#] (http://stackoverflow.com/questions/8766974/check-json-and-xml-is-valid-c-sharp) –

+0

che la soluzione utilizza try/catch. Sto cercando un metodo come TryParse che abbiamo per int, date, .... solo per verificare se la stringa contiene una struttura json valida o no –

+0

Possibile duplicato di [Come assicurarsi che quella stringa sia JSON valido usando JSON.NET] (http://stackoverflow.com/questions/14977848/how-to-make- sicuro-che-string-è-valid-jSON-con-jSON-net) –

risposta

14

Probabilmente il modo più rapido e più sporca è quello di verificare se la stringa inizia con '{':

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

Un'altra opzione è che si potrebbe provare a utilizzare la classe JavaScriptSerializer:

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

Oppure puoi dare un'occhiata a JSON.NET:

0

È possibile trovare un paio di espressioni regolari per convalidare JSON qui: Regex to validate JSON

E 'scritto in PHP, ma dovrebbe essere adattabile a C#.

1

un codice di lavoro frammento di

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

Source

Problemi correlati