7

文字列がjsonであるかどうかを検証する方法はありますか?try/catch以外。

ServiceStack Json Serializerを使用していますが、検証に関連するメソッドが見つかりませんでした。

4

3 に答える 3

16

おそらく最も速くて汚い方法は、文字列が「{」で始まるかどうかを確認することです。

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

もう1つのオプションは、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を検証するための正規表現をいくつか見つけることができます。JSONを検証するための正規表現

PHPで記述されていますが、C#に適応できる必要があります。

于 2012-08-06T20:52:43.140 に答える