7

有什么方法可以验证字符串是否为 json?除了 try/catch 。

我正在使用 ServiceStack Json Serializer 并且找不到与 validation 相关的方法。

4

3 回答 3

16

可能最快和最脏的方法是检查字符串是否以'{'开头:

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:

于 2012-08-07T01:39:32.553 回答
1

一个工作代码片段

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

资源

于 2015-06-19T07:28:11.697 回答
0

你可以在这里找到几个正则表达式来验证 JSON:Regex to validate JSON

它是用 PHP 编写的,但应该适用于 C#。

于 2012-08-06T20:52:43.140 回答