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);
            }
        }

實現效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM