檢查JObject 中是否為空或Null JToken
問題:
問題:
JArray clients = (JArray)clientsParsed["objects"]; foreach (JObject item in clients.Children()) { command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]); }
JTokenToSql 定義為:
public static object JTokenToSql(JToken obj) { if (obj.Any()) return (object)obj; else return (object)DBNull.Value; }
解決方案:
要檢查JObject 上是否有屬性,請使用方號語法並檢查結果是否為空。如果屬性存在,即使 JSON 中的值為 null,也會傳回 JToken。
JToken token = jObject["param"]; if (token != null) { // the "param" property exists }
要檢查 JToken 是否非空,請考慮使用以下擴充方法:
public static class JsonExtensions { public static bool IsNullOrEmpty(this JToken token) { return (token == null) || (token.Type == JTokenType.Array && !token.HasValues) || (token.Type == JTokenType.Object && !token.HasValues) || (token.Type == JTokenType.String && token.ToString() == String.Empty) || (token.Type == JTokenType.Null) || (token.Type == JTokenType.Undefined) } }
如果 token 為 null、空或未定義類型,此方法將傳回 true。
以上是在 C# 中將 JSON 對應到 SQL 參數時如何處理空或 Null JToken?的詳細內容。更多資訊請關注PHP中文網其他相關文章!