servicestack,Asp.net,Json,servicestack" /> servicestack,Asp.net,Json,servicestack" />

在asp.net中验证字符串是否为json

在asp.net中验证字符串是否为json,asp.net,json,servicestack,Asp.net,Json,servicestack,有没有办法验证字符串是否为json?除了尝试/抓住 我正在使用ServiceStack Json序列化程序,找不到与验证相关的方法。您可以在这里找到几个正则表达式来验证Json: 它是用PHP编写的,但应该适用于C#。最快、最脏的方法可能是检查字符串是否以'{'开头: public static bool IsJson(string input){ input = input.Trim(); return input.StartsWith("{") && in

有没有办法验证字符串是否为json?除了尝试/抓住


我正在使用ServiceStack Json序列化程序,找不到与验证相关的方法。

您可以在这里找到几个正则表达式来验证Json:


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

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

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); 
JavaScriptSerializer ser=newJavaScriptSerializer();
SomeJSONClass=ser.Deserialize(json);
或者您可以看看JSON.NET:

工作代码片段


该解决方案的可能重复使用try/catch。我正在寻找类似TryParse的方法,我们用于int、date等。只是为了检查字符串是否包含有效的json结构,或者不可能重复
public bool isValidJSON(String json)
{
    try
    {
        JToken token = JObject.Parse(json);
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }
}