将 Cosmos DB 文档属性序列化和反序列化为字符串

2024-01-12

我正在使用 Json.Net 来装饰我的文档属性。

public class MyDocumentType : Document
{
    [JsonProperty]
    [JsonConverter(typeof(StringEnumConverter))]
    public MyEnumType EnumProertyName{ get; set; }

    [JsonProperty]
    public uint MyIntPrperty{ get; set; }
}

当我更新 cosmos db 中的文档时,它没有更新为字符串值。它始终默认为默认枚举值。如何使其序列化和反序列化为字符串值。我不想使用数字,就像添加一个新的枚举值一样,事情就会崩溃。


使用 Cosmos DB SDK 3+,您无法通过JsonSerializerSettings直接地。

你需要延长CosmosSerializer。你可以得到一个例子CosmosSerializer实施自CosmosJsonDotNetSerializer https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos.Encryption/src/CosmosJsonDotNetSerializer.cs在 Cosmos DB SDK 中。

不幸的是,这个班级是internal sealed所以你的代码中可能有逐字复制。我还提出了一个 GitHub 问题,要求 Cosmos 团队解决这个问题here https://github.com/Azure/azure-cosmos-dotnet-v3/issues/1813.

一旦您的代码中有了 CosmosSerializer 的实现,您就可以通过JsonSerializerSettings如下:

// Create CosmosClientOptions
var cosmosClientOptions = new CosmosClientOptions
                {
                    Serializer =
                   new CosmosJsonDotNetSerializer(
                      new JsonSerializerSettings() {
                          // Your JSON Serializer settings
                      })
                 };

var cosmosClient = new CosmosClient(connectionString, cosmosClientOptions);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Cosmos DB 文档属性序列化和反序列化为字符串 的相关文章

  • 更改 JSON.NET 序列化属性名称的方式

    如何更改 Newtonsoft JSON NET 序列化对象属性名称的方式 有几种方法 You can manually control how it serializes using the JsonTextWriter class ht
  • .NET Core 3 [JsonIgnore] 请求单个资源时不起作用

    在我的 net Core 3 0 API 中 JsonIgnore 属性无法正常工作 我在用着System Text Json 而不是旧的Newtonsoft Json 当我使用返回对象列表的资源时 例如 api Object 对象的序列化
  • JSON.Net 反序列化返回“null”

    我正在使用 JSON Net 反序列化 JSON 字符串 JSON 字符串是 string testJson Fruits Apple color red size round Orange Pro
  • cosmosdb 模拟器没有给出任何结果

    我不知道为什么在查询宇宙数据库时会发生这种情况 它不会显示任何文档 即使是 SELECT FROM c 但显示了 RU 但它与文档选项卡中的文档选项卡配合得很好 如果我使用任何过滤器 那么它也可以工作 但它不适用于 SQL 查询 我已经添加
  • JSON.NET 不区分大小写的反序列化不起作用

    我需要将一些 JSON 反序列化到我的对象中 其中 JSON 的大小写未知 不一致 JSON NET 应该不区分大小写 但它对我不起作用 我的班级定义 public class MyRootNode public string Action
  • Azure DocumentDB 所有者资源不存在

    我有同样的错误 icrosoft Azure Documents DocumentClientException Message Errors Owner resource does not exit 这是我的情况 当我将 web 应用程序
  • cosmos 查询的 ORDER BY 不区分大小写

    这个问题几乎与我可以使用 Order By 和 ToLower 对 DocumentDB 执行不区分大小写的字符串排序吗 https stackoverflow com questions 38919101但由于 5 年前就有人问过这个问题
  • 将 JSON 反序列化为自定义列表

    我有这个 json var x 99 abc 2dp GroupNum 0 Total 4 1 7 x date 60 x 1dp GroupNum 1 存在以下规则 让i参考内部列表索引 x i 0 必填项 始终为整数 x i 1 必填项
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • DocumentDB 上的并发

    这是 DocumentDB 上的一个新手问题 我们希望在我们的应用程序中使用 DocumentDB 我们有多个用户更改存储在 DocumentDB 中的数据 我们如何确保一个用户不会覆盖另一用户的更改 文档数据库有乐观并发并有一个ETag在
  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • documentdb 文档上的 _ts 是否已建立索引?

    使用基于时间戳的 BETWEEN 查找来包含我自己的时间戳 以毫秒为单位 以获得更高性能的查询是否更好 我从之前的帖子中了解到 它表示为自 1970 年以来的秒数 由于它是核心元素 我可能猜测它没有索引 ts 在 DocumentDB 中默
  • 如何使用 JSON.NET 反序列化?

    如何设置 Newtonsoft Json net 将此文本反序列化为 NET 对象 US Hawaii GMT 10 00 Hawaii US Alaska GMT 09 00 Alaska 为了加分 这种结构在Json中叫什么 我尝试寻找
  • 使用 JSONPath 按名称过滤 json 属性

    我想选择属性名称中具有特定匹配项的所有元素 例如 此 json 中名称以 pass 开头的所有属性 firstName John lastName doe age 50 password 1234 phoneNumbers type iPh
  • Newtonsoft.Json.JsonReaderException

    我的 Newtonsoft Json 有问题 我正在尝试从 URL 解析 JSON 但收到错误 这是 JSON ID 0 Nome we Data 2013 09 16 Orario 00 00 16 Prestazione dfg Sta
  • 根据属性中的值类型反序列化对象

    TL DR json net 中是否有一种简单的方法来检查属性的类型并基于该类型创建实例 我在 JSON 中有以下两个对象 它们是JSON API http jsonapi org data type Test id 1 and data
  • 双向链表转 JSON

    我有一个三维结构 实际上是一个具有六个节点的双向链表 即左 右 上 下 进 出 如果一个节点位于另一个节点的右侧 那么该节点将毫无疑问位于第一个节点的左侧 喜欢 实际上这是一个 3D 结构 但为了便于理解 我给出了一个 2D 示例 现在我必
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 在 JSON 属性名称中使用点表示法(例如“ payment.token”)

    我正在编写一个必须发出 API 请求的脚本 目前 发送到 API 的对象如下所示 var request new amount new currency amount Currency value amount Amount additio
  • JSON.NET 使用 JObject、JToken 和 JArray 进行解析

    我有一个 json 字符串 我试图用 JSON net 解析它 我想循环并使用komponent大批 这是我的 json 字符串 Name Service jsonTEMPLATE komponent name aa name bb 这是我

随机推荐