[C#] 檢核字串是否為有效的 JSON 格式

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");
}