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