C# 检查BsonValue是否为空
以mongo集合中的以下摘录为例:C# 检查BsonValue是否为空,c#,.net,mongodb,bson,C#,.net,Mongodb,Bson,以mongo集合中的以下摘录为例: {"IsBasedOnProduct" : { "CodeUV" : "09184", "Name" : null, "pricingVersion" : "B" } } 我想从这个集合中提取Name字段,并将其放入C#对象中。但是我不知道如何管理null值 这就是我在C#应用程序中所做的: if (foo.Contains("IsBasedOnProduct")) { fooToExcel.N
{"IsBasedOnProduct" : {
"CodeUV" : "09184",
"Name" : null,
"pricingVersion" : "B"
}
}
我想从这个集合中提取Name
字段,并将其放入C#对象中。但是我不知道如何管理null
值
这就是我在C#应用程序中所做的:
if (foo.Contains("IsBasedOnProduct"))
{
fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name") ? foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
当然,当Name
为null
时,我抛出一个System.ArgumentNullException
当值为
null
时,如何修复它以放置string.Empty
?使用以下代码快照修复它:
if (foo.Contains("IsBasedOnProduct") && foo["IsBasedOnProduct"].BsonType != BsonType.Null)
{
fooToExcel.Name = foo["IsBasedOnProduct"].AsBsonDocument.Contains("Name")&& foo["IsBasedOnProduct"]["Name"].BsonType != BsonType.Null ?
foo["IsBasedOnProduct"]["Name"].AsString : string.Empty;
}
在此之前,您必须将BJson转换为JSON,请在条件之后进行检查。正确还有另一个要检查的解决方案是
BsonValue
是NULL
使用IsBsonNull
属性[自MongoDB.Bson版本2.3.0以来]
这里是解决方案:
if(foo.Contains(“IsBasedOnProduct”)&&!foo[“IsBasedOnProduct”].IsBsonNull)
{
fooToExcel.Name=(foo[“IsBasedOnProduct”].AsBsonDocument.Contains(“Name”)和&!foo[“IsBasedOnProduct”][“Name”]。IsBsonNull)?
foo[“IsBasedOnProduct”][“Name”].AsString:string.Empty;
}
IsBsonNull
Property->