4

在我的 DocumentDb 文档中,我不想包含具有 NULL 值的属性。例如,我有以下 POCO 类。

public class Person
{
   [JsonProperty(PropertyName="id")]
   public int PersonId {get; set;}

   [JsonProperty(PropertyName="firstName")]
   public string FirstName {get; set;}

   [JsonProperty(PropertyName="middleName")]
   public string MiddleName {get; set;}

   [JsonProperty(PropertyName="lastName")]
   public string LastName {get; set;}
}

有些人没有中间名,当我将一个人的文档保存在我的收藏中时,我不希望包含中间名。目前,没有中间名的人被保存为:

{
   "id": 1234,
   "firstName": "John",
   "middleName": null,
   "lastName": "Smith"
}

这是正常行为吗?如果没有,我如何不在的文档中包含具有 NULL 值的中间名属性?

PS 所有的序列化/反序列化都由 JSON.NET 处理

4

2 回答 2

5

您可以在初始化 Cosmos 客户端时执行此操作,其中有一个类似于 JSON.Net 的序列化选项。

CosmosClient client = new CosmosClient(yourConnectionString, new CosmosClientOptions()
                {
                    SerializerOptions = new CosmosSerializationOptions()
                    {
                        IgnoreNullValues = true,
                    }
                });
于 2021-01-06T09:56:08.980 回答
4

我想我找到了答案。看起来我可以告诉 JSON.NET 使用 NULL 值忽略属性

NullValueHandling = NullValueHandling.Ignore

这是文档:http: //james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size

于 2014-09-18T03:01:43.157 回答