从 JSON 中获取深度嵌套的对象

莱西奇

基本上,我正在使用 HTMLAgilityPack 进行一些网页抓取,并且我得到了一个巨大的 json 作为字符串,然后我JObject使用 json.net 包将其转换为一个

现在在内心深处说JObject有一些我想要的对象。但由于它嵌套得很深,我想知道是否真的有办法到达这些对象,而不知道它们究竟在什么地方JObject我只知道他们的名字。有什么方法可以让我在整体中进行某种搜索JObject,只知道我正在寻找的对象/属性名称?

遗憾的是,我找不到任何可以使用的相关问题/记录方法。

阿诺

这可能对你有用:

private JToken GetValueByKey(JObject jObject, string key)
{
    foreach (KeyValuePair<string, JToken> jProperty in jObject)
    {
        if (jProperty.Key.Equals(key))
        {
            return jProperty.Value;
        }
        else if (jProperty.Value is JObject)
        {
            return GetValueByKey((JObject)jProperty.Value, key);
        }
    }
    return null;
}

它需要您要在其中搜索的 JObject 和您要搜索的键。它映射 JObject 中的所有属性以查看或匹配键,如果不匹配,它将检查或当前属性可以转换为 JObject。如果它可以转换为 JObject,它将检查所有 JObjects 值或您的键匹配。

如果找到匹配项,它将返回与您的键匹配的值。

如果在循环遍历 JObject 中的所有属性后未找到匹配项,它将返回 null。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章