winform调用WebApi

金山词霸的api :https://dict-mobile.iciba.com/interface/index.php?c=word&m=getsuggest&nums=10&is_need_mean=1&word=hello

首先根据Json的格式转成C#实体类 (在线工具:JSON转C#实体类-BeJSON.com

{
    "message": [
        {
            "key": "hello",
            "paraphrase": "n.“喂”的招呼声或问候声;int.哈喽,喂,你好,您好,表示问候,打招呼",
            "value": 0,
            "means": [
                {
                    "part": "int.",
                    "means": [
                        "哈喽,喂",
                        "你好,您好",
                        "表示问候",
                        "打招呼"
                    ]
                },
                {
                    "part": "n.",
                    "means": [
                        "“喂”的招呼声或问候声"
                    ]
                }
            ]
        },
        {
            "key": "hellow",
            "paraphrase": "(通常的招呼语)嗨, (打电话用)喂!, (英)(表示惊讶)哎哟",
            "value": 475,
            "means": [
                {
                    "part": "",
                    "means": [
                        "(通常的招呼语)嗨, (打电话用)喂!, (英)(表示惊讶)哎哟"
                    ]
                }
            ]
        },
        {
            "key": "hello kitty",
            "paraphrase": "n.凯蒂猫(品牌名,另有译名堤提猫、凯迪猫、吉蒂猫等)",
            "value": 471,
            "means": [
                {
                    "part": "n.",
                    "means": [
                        "凯蒂猫(品牌名,另有译名堤提猫、凯迪猫、吉蒂猫等)"
                    ]
                }
            ]
        },
        {
            "key": "hello girl",
            "paraphrase": "女话务员,女电话接线员",
            "value": 389,
            "means": [
                {
                    "part": "",
                    "means": [
                        "女话务员",
                        "女电话接线员"
                    ]
                }
            ]
        },
        {
            "key": "hello everyone",
            "paraphrase": "大家好",
            "value": 384,
            "means": [
                {
                    "part": "",
                    "means": [
                        "大家好"
                    ]
                }
            ]
        },
        {
            "key": "hellos",
            "paraphrase": "",
            "value": 356
        },
        {
            "key": "hello goodbye",
            "paraphrase": "",
            "value": 174,
            "means": [
                {
                    "part": "",
                    "means": [
                        "你好,再见(歌曲名)"
                    ]
                }
            ]
        },
        {
            "key": "hello screen",
            "paraphrase": "问候屏",
            "value": 58,
            "means": [
                {
                    "part": "",
                    "means": [
                        "问候屏"
                    ]
                }
            ]
        }
    ],
    "status": 1
}

 

新建C#实体类

public class MeansItem
{
    public string part { get; set; }
    public List <string > means { get; set; }
}
 
public class MessageItem
{
    public string key { get; set; }
    public string paraphrase { get; set; }
    public int value { get; set; }
    public List <MeansItem > means { get; set; }
}
 
public class Root
{
    public List <MessageItem > message { get; set; }
    public int status { get; set; }
}

 

C#代码

        private void button1_Click(object sender, EventArgs e)
        {
            dataGridView1.Rows.Clear();
            string Url = "https://dict-mobile.iciba.com/interface/index.php?c=word&m=getsuggest&nums=10&is_need_mean=1&word={0}";
            Url = string.Format(Url, textBox1.Text);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
            request.Method = "GET";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string json = reader.ReadToEnd();
            jinshan w = JsonConvert.DeserializeObject<jinshan>(json); //jinshan是主实体类的名称,就是上面的Root
            foreach (var m in w.message)
            {
                dataGridView1.Rows.Add(m.key, m.paraphrase);
            }
        }

实现效果

 

posted @ 2022-01-11 09:14  帅气型男  阅读(1541)  评论(0编辑  收藏  举报