首页 > 解决方案 > 无法验证使用 jsonElement.TryGetProperty 加载到 JsonElement 中的 json 字符串中的元素和值

问题描述

我正在使用 .net core 3.1 和 System.Text.Json。我在 json 的子元素中有一个字符串,其中包含我想在某些 .net 元素中加载的元素声明,然后验证其中的键

{
  "scope": "openid MyScop",
  "claims": "{\"premiuminfo\":{\"country\":{\"value\":\"country1\"},\"town\":{\"value\":\"town1\"},\"given_name\":{\"value\":\"given_name1\"},\"postal_code\":{\"value\":\"postal_code1\"},\"family_name\":{\"value\":\"family_name1\"},\"houseno_or_housename\":{\"value\":\"test house number\"}}}",  
}

我能够在 JsonElement 中加载声明对象

 JsonElement o = JsonSerializer.Deserialize<JsonElement>(s);

但无法找到任何方法来检查诸如高级信息、县等键

可以请人帮我使用它吗

标签: c#.net-core-3.1system.text.json

解决方案


您可能正在寻找TryGetProperty

TryGetProperty(ReadOnlySpan, JsonElement)

在当前对象中查找名为 propertyName 的属性,返回一个值,指示该属性是否存在。当属性存在时,该方法将其值分配给 value 参数。


推荐阅读