在 c# 中循环通过从 facebook 图 api 收到的 json 响应并获取最新值。 (然后,将其存储在 dot net core 的数据库中)

Loop through a json response received from facebook graph api in c# and get the latest value. (then, store it in database in dot net core)

我正在使用 facebook 的图表 API 来获取 facebook 帖子的永久链接。但端点似乎总是 return 是所有已发布帖子的数组。

所以,我需要获取响应并循环遍历它,只获取始终是响应中第一对的最新值。

这是我使用图形浏览器得到的响应。我只需要数据数组中的第一对,即 permalink_url 和 id,这样我就可以将它们单独存储在数据库中,以使用永久链接将帖子嵌入我的网站。

{
  "data": [
    {
      "permalink_url": "https://www.facebook.com/347775946439542/photos/a.348021906414946/358023508748119/?type=3",
      "id": "347775946439542_358023508748119"
    },
    {
      "permalink_url": "https://www.facebook.com/347775946439542/photos/a.348021906414946/350654269485043/?type=3",
      "id": "347775946439542_350654269485043"
    },
    {
      "permalink_url": "https://www.facebook.com/347775946439542/photos/a.348021906414946/350651839485286/?type=3",
      "id": "347775946439542_350651839485286"
    }
  ],
  "paging": {
    "cursors": {
      "before": "QVFIUlRGODNTaFZAueEUxQ2VvcHlrMUw1MGE0U0FCblhZAY1hVbFBGUHhHdXlrSkgzSm0tb05pSGpFOXBYVG9EcnN5T21sQTgtYy1jSjhrZAW9WYmg5YmpVMXpQWTRLUkQ3ZA05PcEZAjUTNyV2VuV05hRG8yVlBaa3pia3dFTVRLU05nU0pU",
      "after": "QVFIUlBHMG44ZAkxHdUsxb012bVlOQ0ZAfaDhHLUZA6VEt6MHd0QjJYZADlfZAVk2aExSdlJESUU2SlVDaVJsYzI4dnlmUllZASzhKd3Nkb09aa2ZAMRHZAFTGhMVHFoQ1hjNE5zNDJ2aV96UGtVQUpBeHE1b2xUTzk2SHZALLTZA1Y3pZAZAmJOMENS"
    }
  }
}

我确实解决了一些使用 newtonsoft 但无法使其工作的问题。 因此,关于如何在 C#(razor 页面)中循环遍历此内容然后从方法中 return 它们的任何帮助。然后我需要在数据库中存储永久链接和 ID。

这是我的方法:这里 _getPermalink 有我必须点击的端点。

'str' 也有如下所示的响应。我必须从中获取永久链接和 ID。

public string GetPermalink()
        {

            WebClient client = new WebClient();
            Stream data = client.OpenRead(_getPermalink);
            StreamReader reader = new StreamReader(data);
            string str = "";
            str = reader.ReadLine();
            data.Close();

            return str;
        }

当我从方法调用此端点时:string res = facebook.GetPermalink();(这里 facebook 只是一个构造函数,具有调用端点所需的值,例如页面 ID、访问令牌等)

相同的响应看起来像这样。

{"data":[{"permalink_url":"https:\/\/www.facebook.com\/347775946439542\/photos\/a.348021906414946\/358023508748119\/?type=3","id":"347775946439542_358023508748119"},{"permalink_url":"https:\/\/www.facebook.com\/347775946439542\/photos\/a.348021906414946\/350654269485043\/?type=3","id":"347775946439542_350654269485043"},{"permalink_url":"https:\/\/www.facebook.com\/347775946439542\/photos\/a.348021906414946\/350651839485286\/?type=3","id":"347775946439542_350651839485286"}],"paging":{"cursors":{"before":"QVFIUlRGODNTaFZAueEUxQ2VvcHlrMUw1MGE0U0FCblhZAY1hVbFBGUHhHdXlrSkgzSm0tb05pSGpFOXBYVG9EcnN5T21sQTgtYy1jSjhrZAW9WYmg5YmpVMXpQWTRLUkQ3ZA05PcEZAjUTNyV2VuV05hRG8yVlBaa3pia3dFTVRLU05nU0pU

我对 C# 中 json object/arrays 的概念和使用 newtonsoft 比较陌生。任何帮助和解释表示赞赏。 (PS:有没有办法使用 facebook 图 api 只获取最新帖子的永久链接和 ID?)

根据您发布的 JSON 数据,您可以使用以下一行从中获取第一个永久链接 URL:

string permalinkUrl = (string)JObject.Parse(json).SelectToken("data[0].permalink_url");

演示:https://dotnetfiddle.net/SUgz51