API返回 json資料的解析和取值
阿新 • • 發佈:2019-01-05
有的API返回的資料比較少,適合用json來傳,後臺與前臺的資料交換也經常用 json來傳。我們簡單看個json的文件:
現在我們試著提取這個json資料包裡的“nickname”和“headimgurl”的內容。
程式碼如下:
public UserInfo ReUserInfo(string OpenID)
{
UserInfo userinfo = new UserInfo();
string url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" +get_acctoken()+"&openid="+OpenID+"&lang=zh_CN";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);//請求資料
//use GET method to get url's html
req.Method = "GET";
//use request to get response
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();//獲取返回結果
//otherwise will return messy code
// Encoding htmlEncoding = Encoding.GetEncoding(htmlCharset);
StreamReader sr = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);//以UTF8標準讀取流
//read out the returned html
string respHtml = sr.ReadToEnd();//將從頭到尾讀到的資料存成字串
//以上是資料的讀取,將json資料包轉換成字串的過程,下面解析字串
JObject obj = (JObject)JsonConvert.DeserializeObject(respHtml);//引用using Newtonsoft.Json.Linq;將json字串轉換成一個json物件
userinfo.nickname = obj["nickname"].ToString();//要訪問json資料包的哪個值直接訪問json物件就可以了
userinfo.headimgurl = obj["headimgurl"].ToString();
return userinfo;
}
跟json打交道的時候,JsonConvert很重要。