c# - 无法验证使用 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);
但无法找到任何方法来检查诸如高级信息、县等键
可以请人帮我使用它吗
解决方案
您可能正在寻找TryGetProperty
TryGetProperty(ReadOnlySpan, JsonElement)
在当前对象中查找名为 propertyName 的属性,返回一个值,指示该属性是否存在。当属性存在时,该方法将其值分配给 value 参数。
推荐阅读
- neo4j - 查询以在没有克隆过程的情况下在 neo4j 中复制具有关系的节点
- java - java.lang.IllegalStateException:此错误处理程序无法处理'org.apache.kafka.common.errors.SslAuthenticationException's;
- nginx - nginx proxy_cache 无法缓存
- vb.net - 即使上一个查询有错误,如何继续下一个查询的 for 循环?
- java - 为什么 CompletableFuture 有时会陷入 try block 跳过动作代码?
- apache-superset - 堆叠条形图中的排序条超集
- matlab - Matlab: Plots and Subplots - 如何让 Matlab 同时放大所有子图?
- python - 如何删除第一列中具有 NaN 值的前 n 行?
- mybb - 我需要更新 myBBIntegrator 的此类代码
- io - 当我使用正确的 WRITE DESCRIPTOR 时,出现以下 fortran 运行时错误的原因是什么?