private void btnJson解析_Click(object sender, EventArgs e) { //我们的接口 string url = "https://midway.51tiangou.com/search/result/init.node?type=index&tgTabBarParams={%22startNum%22%3A%220%22%2C%22pageCount%22%3A%2210%22}&topBarIndex=0&cityId=2554&cityIds=2554&storeIds=1065&listType=product&range=all&tabIndex=0&startNum=0&pageCount=10&scp=07.searchresult.search.0&words=%E8%8C%85%E5%8F%B0&_=1599633833337&childIndex=0¤tView=2&superStoreId=1065"; //将接口传入,这个HttpUitls的类,有兴趣可以研究下,也可以直接用就可以,不用管如何实现。 string getJson = HttpUitls.Get(url); //这个需要引入Newtonsoft.Json这个DLL并using //传入我们的实体类还有需要解析的JSON字符串这样就OK了。然后就可以通过实体类使用数据了。 int LastDataFrom = getJson.LastIndexOf(",{"); int LastDataTo = getJson.LastIndexOf("]"); string strTempFrist = getJson.Substring(0, LastDataFrom); string strTempEnd = getJson.Substring(LastDataTo); getJson = strTempFrist + strTempEnd; Root rt = JsonConvert.DeserializeObject <Root>(getJson); //这样就可以取出json数据里面的值 //由于这个JSON字符串的 public List<DataItem> data 是一个集合,所以我们需要遍历集合里面的所有数据 foreach (DataItem item in rt.data) { string strUrl = "http:" + item.data.clickUrl; Common.listUrl.Add(strUrl); TabPage tp = new TabPage(item.data.title); Panel pnlBrowser = new Panel(); pnlBrowser.Dock = DockStyle.Fill; tp.Controls.Add(pnlBrowser); TextBox txtUrl = new TextBox(); txtUrl.Dock = DockStyle.Top; pnlBrowser.Controls.Add(txtUrl); GoogleWebBrowser googleBrowser = new GoogleWebBrowser(); googleBrowser.Start(pnlBrowser, strUrl); tabControl1.TabPages.Add(tp); } }
public static void ExecuteJs(GoogleWebBrowser chromiumWebBrowser, string js) { var frame = chromiumWebBrowser.GetMainFrame(); frame.EvaluateScriptAsync(js); }