private void ShowNextPage() { if (LoginWindow.PSKey == null) { MessageBox.Show("获取登陆信息失败!"); return; } ilCover.Images.Clear(); lvCover.Items.Clear(); VideoDict.Clear(); var token = MakeToken(LoginWindow.PSKey); var url = string.Format(URLFormat, token, LoginWindow.QQ, StartIndex); //MessageBox.Show(url); var wc = new WebClient() { Encoding = Encoding.UTF8 }; wc.Headers.Add(HttpRequestHeader.Cookie, LoginWindow.Cookie); var res = wc.DownloadString(url); var start_index = res.IndexOf('(') + 1; var end_index = res.LastIndexOf(')'); res = res.Substring(start_index, end_index - start_index); var json = new SBJsonHelper(res); if (json["code"].CastTo <SBJsonNumber>().Value != 0) { MessageBox.Show("ERROR"); return; } var jsonData = json["data"]; TotalVideos = (int)jsonData["total"].CastTo <SBJsonNumber>().Value; label1.Text = string.Format(LabelFormat, StartIndex / VideosPerPage + 1, TotalVideos / VideosPerPage + 1); StartIndex += VideosPerPage; btnNext.Enabled = !bool.Parse(jsonData["isLast"].CastTo <SBJsonString>().Value); btnPre.Enabled = StartIndex >= (VideosPerPage << 1); foreach (SBJsonDict jsonVideo in jsonData["Videos"].CastTo <SBJsonArray>().Value) { var qzvideo = new QZoneVideo(jsonVideo); VideoDict.Add(qzvideo.Key, qzvideo); lvCover.Items.Add(qzvideo.Key, qzvideo.Title, qzvideo.Key); DownloadManager.ManagedDownload(qzvideo.Key, qzvideo.PreImg); } }
static void Main(string[] args) { var JsonText = "{\"foo\" : \"bar\" , \"headers\" : {\"data\" : [233,{\"readme\" : \"bingo\" },false ] } }"; var SBJson = new SBJsonHelper(JsonText); Console.Write("SBJson.JsonText => "); Console.WriteLine(JsonText); Console.Write("SBJson.ToString() => "); Console.WriteLine(SBJson); Console.WriteLine(); Console.Write("SBJson[\"foo\"] => "); Console.WriteLine(SBJson["foo"]); Console.WriteLine(); Console.Write("SBJson[\"headers\"] => "); Console.WriteLine(SBJson["headers"]); Console.WriteLine(); Console.Write("SBJson[\"headers\"][\"data\"] => "); Console.WriteLine(SBJson["headers"]["data"]); Console.WriteLine(); Console.Write("SBJson[\"headers\"][\"data\"][0] => "); Console.WriteLine(SBJson["headers"]["data"][0]); Console.WriteLine(); Console.Write("SBJson[\"headers\"][\"data\"][1] => "); Console.WriteLine(SBJson["headers"]["data"][1]); Console.WriteLine(); Console.Write("SBJson[\"headers\"][\"data\"][1][\"readme\"] => "); Console.WriteLine(SBJson["headers"]["data"][1]["readme"]); Console.WriteLine(); Console.Write("SBJson[\"headers\"][\"data\"][2] => "); Console.WriteLine(SBJson["headers"]["data"][2]); Console.ReadKey(true); }