首页 > 数据库 > mysql教程 > 在 C# 中将 JSON 映射到 SQL 参数时如何处理空或 Null JToken?

在 C# 中将 JSON 映射到 SQL 参数时如何处理空或 Null JToken?

Susan Sarandon
发布: 2025-01-05 22:35:43
原创
736 人浏览过

How to Handle Empty or Null JTokens When Mapping JSON to SQL Parameters in C#?

检查 JObject 中是否为空或 Null JToken

问题:

在 C# 中应用程序中,以下代码尝试循环遍历 JObject 的 JArray 并将值分配给 SQL 参数使用 JTokenToSql 方法。但是,如果 JObject 中的属性为空或 null,则 JTokenToSql 方法不会按预期工作。

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板