我如何解析在文本框中检索的代码:
{ “项目”:[ { “snippet”:{ “channelId”:“UCcTbyoZjhqoCn4yVawpMFDA”, “title”:“永远 - Stratovarius”, “categoryId”:“10” }, “统计”:{ “viewCount”:“6180411”, “likeCount”:“19060”, “dislikeCount”:“342”, “favoriteCount”:“0”, “commentCount”:“3025” } } ] }
获取值标题的代码和likeCount:
Dim url As String = "https://www.googleapis.com/youtube/v3/videos?id=8BvV9arABLs&key=KEYAPI&fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statistics"
Dim json As String = New WebClient().DownloadString(url)
Dim root As JToken = JToken.Parse(json)
Dim sb As New StringBuilder()
For Each item As JToken In root("items")
textbox1.text=sb.AppendLine(item.SelectToken("title") & sb.AppendLine(item.SelectToken("likeCount"))
Next
答案 0 :(得分:0)
答案 1 :(得分:0)
首先,在发布之前格式化JSON等标记数据会更好。
像这样:
{
"items" : [{
"snippet" : {
"channelId" : "UCcTbyoZjhqoCn4yVawpMFDA",
"title" : "Forever - Stratovarius",
"categoryId" : "10"
},
"statistics" : {
"viewCount" : "6180411",
"likeCount" : "19060",
"dislikeCount" : "342",
"favoriteCount" : "0",
"commentCount" : "3025"
}
}
]
}
正如@rufanov所说,有一些用于JSON序列化的软件包。
至于我,我使用的是Newtonsoft JSON。我在C#中使用它并将在其中编写示例,但我坚信它应该在VB.NET上相同或类似。 为JSON对象创建类。注意:成员应该是JSON对象中的名称。
public class JItemArray
{
public JItem[] items;
}
public class JItem
{
public JSnippet snippet;
public JStatistics statistics;
}
public class JSnippet
{
public string channelId;
public string title;
public string categoryId;
}
public class JStatistics
{
public string viewCount;
public string likeCount;
public string dislikeCount;
public string favoriteCount;
public string commentCount;
}
然后,你就可以了
JItemArray itemArray = JsonConvert.DeserializeObject<JItemArray>(yourJsonString);
如果出现故障,它将抛出JsonReaderException(在Message中有解释)。 否则,它将返回一个包含所有必要解析数据的正确JItem .NET对象。
这是在NuGet网站上。 https://www.nuget.org/packages/Newtonsoft.Json/
但如果您只需要这两个值,那么使用JToken就是一个不错的做法。