c# - 使用 TryGetProperty 时忽略大小写

标签 c# asp.net-core system.text.json

我有一个 JsonElement 类型的对象,其中包含 API 返回的数据。我想获取某个属性的值,但问题是 TryGetProperty 区分大小写。
有没有办法或解决方法可以在忽略区分大小写的同时按名称获取属性?
谢谢你。

最佳答案

EnumerateObject 会给你一个所有属性的列表。您可以遍历它们并找到与忽略大小写的名称匹配的第一个:

JsonElement value = null;
bool found = false;

var property = element.EnumerateObject()
                      .FirstOrDefault(p => string.Compare(p.Name, propName, 
                                                          StringComparison.OrdinalIgnoreCase) == 0);
if(property != null)
{
    value = property.Value;
    found = true;
}

关于c# - 使用 TryGetProperty 时忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63598778/

相关文章:

c# - 如何在 ASP.NET Core 中间件中获取传入请求正文和传出响应正文?

asp.net-core - 在评估 OnGetAsync 之前呈现 Razor 页面

c# - 如何使用 System.Text.Json 忽略错误值

c# - 将对象列表转换为元组列表而不进行迭代

c# - 以编程方式将 Doc 转换为 Docx bug

c# - 用户如何停止异步方法?

c# - 如何序列化接口(interface)默认属性?

c# - 3层架构系统

c# - 使用 Azure Function 应用程序 2.x 设置 Azure Functions 应用程序基目录

c#/.net core3.0 System.Text.Json - JsonSerializer.SerializeAsync?