(2)
using System; using System.Collections.Generic; using System.Data; using System.Net; using System.Text; using Newtonsoft.Json; namespace ConsoleApp { public class DataItem { public double STKID { get; set; } public double SPID { get; set; } public string STKNAME { get; set; } public string CNAME { get; set; } } public class RootObject { public string statusCode { get; set; } public string message { get; set; } public List<DataItem> data { get; set; } public int PsessionID { get; set; } } class Program { static void Main(string[] args) { //string apiUrl = "http://www.kuaidi100.com/query?type=yuantong&postid=11111111111"; string apiUrl = "https://bff.gds.org.cn/gds/searching-api/ProductService/ProductListByGTIN?PageSize=30&PageIndex=1&SearchItem=06902952880294"; //string apiUrl = "http://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&bk_key=%E9%93%B6%E9%AD%82&bk_length=600"; DataTable dataTable = CallApiAndConvertToDataTable(apiUrl); if (dataTable != null) { // 打印 DataTable 中的数据 foreach (DataRow row in dataTable.Rows) { Console.WriteLine("成功"); } } Console.ReadLine(); } static DataTable CallApiAndConvertToDataTable(string apiUrl) { using (WebClient client = new WebClient()) { client.Encoding = Encoding.UTF8; // 设置编码为 UTF-8 try { byte[] jsonData = client.DownloadData(apiUrl); var jsonResponse = Encoding.UTF8.GetString(jsonData); // 将字节数组转换为字符串 RootObject root = JsonConvert.DeserializeObject<RootObject>(jsonResponse); DataTable dataTable = CreateDataTable(); foreach (var dataItem in root.data) { DataRow row = dataTable.NewRow(); row["STKID"] = dataItem.STKID; row["SPID"] = dataItem.SPID; row["STKNAME"] = dataItem.STKNAME; row["CNAME"] = dataItem.CNAME; dataTable.Rows.Add(row); } return dataTable; } catch (Exception ex) { Console.WriteLine("发生错误:" + ex.Message); return null; } } } //返回信息解析 AT10:物料编码MATCP:酒的分类MATNANE:酒的名称BRAD:酒的品牌:SPECNAME:规格名称BOSPECIO:净含量SKU:商品条码:VAT:酒的上市日期:SALEPRC:建议委售价:R:备注:HLATID:LTID:SPECID:SPECID:MATBHID:MATEHID: //发生错误:基础连接已关闭:传送时发生未预期的错误 static DataTable CreateDataTable() { DataTable dataTable = new DataTable(); dataTable.Columns.Add("STKID", typeof(double)); dataTable.Columns.Add("SPID", typeof(double)); dataTable.Columns.Add("STKNAME", typeof(string)); dataTable.Columns.Add("CNAME", typeof(string)); return dataTable; } } }