2012-08-06 251 views
6

有什麼方法可以驗證字符串是否是json?除了try/catch之外。在asp.net驗證一個字符串是否是json

我正在使用ServiceStack Json串行器,並找不到與驗證有關的方法。

+0

的可能重複[檢查JSON和XML是有效的? c#](http://stackoverflow.com/questions/8766974/check-json-and-xml-is-valid-c-sharp) – 2012-08-06 20:42:30

+0

該解決方案使用try/catch。我正在尋找像TryParse這樣的方法,我們用int,date,...來表示。只是爲了檢查字符串是否包含有效的JSON結構 – 2012-08-06 20:48:02

+0

可能的重複[如何確保字符串是有效的JSON使用JSON.NET](http://stackoverflow.com/questions/14977848/how-to-make-肯定 - 這串 - 是 - 使用有效,JSON-JSON的網) – 2016-08-05 06:55:42

回答

14

也許是最快和最骯髒的方法是檢查字符串開始「{」

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

另一種選擇是,你可以嘗試使用JavascriptSerializer類:

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

或者你可以看看JSON.NET:

0

你可以找到一對夫婦正則表達式來驗證JSON在這裏:Regex to validate JSON

它是用PHP編寫的,但應該適應C#。

1

一個工作代碼段

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

Source

相關問題