嘿大家我试图使用v3 Data Youtube API,已经有了Request本身,响应看起来像这样
{
"items": [
{
"snippet": {
"publishedAt": "2016-12-07T16:04:40.472Z",
"displayMessage": "a"
}
}
]
}
问题是我只想要最后一个评论,而不是整个200(不能设置得更低)我的第一个想法是保存整个响应并将它与下一个比较,所以我知道什么是新的,但那不会真的锻炼
答案 0 :(得分:0)
好的,所以从评论中我知道你在谈论Live Streaming API。
你得到的是消息,而不是评论。是的,正如doc所说,"可接受的值是200到2000,包括两者。默认值为500。"因此,您可以获得整个200,然后按时间戳排序以获取最新消息。
怎么做?
当你在C#中这样做时,一旦你有了json字符串,你需要使用一些库,例如Json.NET。向此添加NuGet包引用后,您将需要
using Newtonsoft.Json.Linq;
并说你的json字符串是
var json = @"{
""items"": [
{
""snippet"": {
""publishedAt"": ""2016-12-07T16:04:40.472Z"",
""displayMessage"": ""a""
}
}
,
{
""snippet"": {
""publishedAt"": ""2016-12-12T16:04:40.472Z"",
""displayMessage"": ""b""
}
}
]
}";
然后,如本documentation所述,使用JObject.Parse使用LINQ to JSON。
var parsedJson = JObject.Parse(json);
JArray items = parsedJson.SelectToken("items") as JArray;
var sortedItems = items.OrderByDescending(item => item["snippet"]["publishedAt"]);
// sortedItems.First() will give you the item with the newest timestamp
将所有这些放在https://dotnetfiddle.net/ubQAZV。
或者,如果您希望反序列化为强类型代码,则可以使用JsonConvert。 关于它的更多信息here。