[英]How to loop through json array that lookes like this. Using C# and Facebook graph api
[英]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 帖子的永久链接。 但似乎端点总是返回所有已发布帖子的数组。
因此,我需要获取响应并循环遍历它,并仅获取始终是响应中第一对的最新值。
这是我使用图形资源管理器得到的响应。 我只需要数据数组中的第一对,即 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 但无法使其工作的问题完成了 go。 因此,有关如何在 C# (剃刀页面)中循环然后从方法中返回它们的任何帮助。 然后,我需要将永久链接和 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 对象/数组的概念和使用 newtonsoft 比较陌生。 任何帮助和解释表示赞赏。 (PS:有没有办法只使用 facebook 图 api 获取最新帖子的永久链接和 ID?)
鉴于您发布的 JSON 数据,您可以使用以下单行从中获取第一个永久链接 URL:
string permalinkUrl = (string)JObject.Parse(json).SelectToken("data[0].permalink_url");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.