string IsValidJson
前言
用途:先檢查字串是否為有效 JSON 格式,再決定程式流程是否往下執行反序列化。
實作
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;/*NuGet加入Json.Net參考*/
bool IsValidJson(string jsonString)
{
    if (string.IsNullOrEmpty(jsonString))
        return false;
    jsonString = jsonString.Trim();
    if ((jsonString.StartsWith("{") && jsonString.EndsWith("}")) || // 檢查是否為 JSON 物件
        (jsonString.StartsWith("[") && jsonString.EndsWith("]")))   // 或 JSON 陣列
    {
        try
        {
            JToken.Parse(jsonString);
            return true;
        }
        catch (JsonReaderException jrEx)
        {
            return false;
        }
    }//end if 
    return false;
}//end function 
// 使用範例
string jsonString = "可能的 JSON 字串";
if (IsValidJson(jsonString))
{
    JObject obj = JsonConvert.DeserializeObject<JObject>(jsonString);
    Console.WriteLine("成功序列化為 JObject");
}
else
{
    Console.WriteLine("該字串無法序列化為 JObject");
}