C# 从 Cosmos db 获取带有数组的 json

标签 c# azure azure-cosmosdb

我需要从我的 CosmosDb 检索以下 JSON,但我认为 C# 代码(适用于简单的 JSON 结构)需要帮助。 响应仅显示

{ RolePermission[0]  } 



var response = this.client.CreateDocumentQuery<RolePermission>(
                       UriFactory.CreateDocumentCollectionUri("demo", "RoleMenus"), queryOptions)
                       .Where(f => f.RoleName == roleName).AsEnumerable().ToArray();

JSON 是:

{
"id": "1",
"RoleName": "Admin",
"Menus": [
    {
        "Item": "Admin",
        "Display": "Admin",
        "Granted": true
    },
    {
        "Item": "Users",
        "Display": "Users",
        "Granted": true
    }
],
}

我想要进入的类定义是:

public class RolePermission
{
    [DisplayName("Role Name")]
    public string RoleName { get; set; }
    public List<Menus> Menus { get; set; }
}

public class Menus
{
    public string Item { get; set; }
    public string Display { get; set; }
    public bool Granted { get; set; }
}

我只需要 JSON 的菜单部分

谢谢

最佳答案

根据您提供的数据和代码,它应该返回您需要的列表“菜单” 使用以下查询

var response = this.client.CreateDocumentQuery<RolePermission>(UriFactory.CreateDocumentCollectionUri("demo", "RoleMenus"), queryOptions).Where(f => f.RoleName == roleName).ToList(); 

确保容器中的 RoleName 字段插入了正确的数据。

关于C# 从 Cosmos db 获取带有数组的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71224159/

相关文章:

azure-cosmosdb - 有没有办法使用CosmosDb的TTL功能但始终保留至少n条记录

c# - 在Linux的同一台计算机上运行多个实例时的.Net Core垃圾回收

powershell - Azure 函数中的 PNP PowerShell 在某个时间间隔内快速触发时失败

azure - 如何在 Azure Function for Azure Gov 中编辑配置设置

Azure Functions 一次可以完成多少代码?

azure - CosmosDB + 分组依据

c# - 如何提高通过流下载大尺寸 azure blob 文件的性能?

c# - VS2017 : CSC : warning CS2002: Source file <filename> specified multiple times. 如何解决?

c# - 正则表达式不捕获

azure - Cosmos DB 中的文档版本支持。联盟有用吗?