【问题标题】:Reddit search for key and the value in json dataReddit 搜索 json 数据中的键和值
【发布时间】:2018-01-29 09:41:53
【问题描述】:

我希望有人可以帮助我。我是 json 的初学者,但我尝试构建一个程序,通过 json 文件从 subreddit 加载所有帖子。我不想将它保存在一个类中,所以从 json 创建类不是一个选项,因为我发现并非每个 subreddit 显然都具有相同的结构。

作为我的示例,我使用 /r/wallpaper https://www.reddit.com/r/wallpaper/hot.json?count=25

这是我当前的代码,但在 JObject 中搜索时,我总是在 dat2 中得到空结果

var json = "";
using (WebClient client = new WebClient())
{
    json = client.DownloadString("https://www.reddit.com/r/wallpaper/hot.json?count=25");
    JObject data = JObject.Parse(json);

    string dat2 = data["url"].Value<string>();
}

如何通过一个键轻松搜索所有值?因此,例如,我可以从每个帖子中获取所有缩略图。 我正在使用 Json.NET。

【问题讨论】:

  • 剩下的代码在哪里?您给我们的代码在哪里使用?

标签: c# json json.net reddit


【解决方案1】:

您需要找到孩子并遍历它们。每个孩子都有自己的网址。

示例代码:

var json = "";
using (WebClient client = new WebClient())
{
    json = client.DownloadString("https://www.reddit.com/r/wallpaper/hot.json?count=25");
    JObject data = JObject.Parse(json);

    var children = data["data"]["children"];
    for (var i = 0; i < children.Count(); i++)
    {
        Console.WriteLine(children[i]["data"]["url"]);
    }
}

【讨论】:

  • 谢谢!那工作得很好。所以我需要访问对象首先在 json 中搜索它的节点?
  • 没错。在您的场景中尤其如此。程序不知道你是在寻找一个特定的 url 还是所有 url,你必须明确告诉它。
猜你喜欢
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2019-09-12
  • 1970-01-01
  • 2023-02-24
  • 1970-01-01
  • 2015-06-07
相关资源
最近更新 更多