Hos*_*lah 5 .net c# system.text.json
这是我的 JSON:
{
firstName: 'Somebody',
lastName: 'Else'
}
Run Code Online (Sandbox Code Playgroud)
我将其反序列化为JsonElement使用以下选项:
var options = new JsonSerializerOptions {
WriteIndented = true,
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};
Run Code Online (Sandbox Code Playgroud)
但后来我想搜索属性,它变得区分大小写。
element.GetProperty("FirstName") // this returns null
element.GetProperty("firstName") // this returns 'Somebody'
Run Code Online (Sandbox Code Playgroud)
如何强制GetProperty方法不区分大小写?
小智 4
根据文档,您应该能够JsonNamingPolicy像这样创建一个应该完成这项工作的文档:
using System.Text.Json;
namespace SystemTextJsonSamples
{
public class LowerCaseNamingPolicy : JsonNamingPolicy
{
public override string ConvertName(string name) =>
name.ToLower();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:然后您可以通过将选项配置更改为以下来使用它:
var options = new JsonSerializerOptions {
WriteIndented = true,
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = new LowerCaseNamingPolicy()
};
Run Code Online (Sandbox Code Playgroud)
编辑2:
那么您可以通过以下方式搜索该房产:
element.GetProperty("FirstName".ToLower())
element.GetProperty("firstName".ToLower())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2661 次 |
| 最近记录: |