赞
踩
C#获取http请求的JSON数据并解析
,第一步,先拿到http的数据,第二步,把JSON转为list(或者使用JArray对象解析),然后就可以正常使用数据了。
封装好的方法直接调用
public static string GetJson(string url)
{
//访问https需加上这句话
// ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
//访问http(不需要加上面那句话)
WebClient wc = new WebClient();
wc.Credentials = CredentialCache.DefaultCredentials;
wc.Encoding = Encoding.UTF8;
string returnText = wc.DownloadString(url);
if (returnText.Contains("errcode"))
{
//可能发生错误
}
//Response.Write(returnText);
return returnText;
}
实际应用
string url = "http://你的api地址";
string contenet = HttpDataUtils.GetJson(url);//获取json串
引用
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
json格式
{"state":200,"data":[{"id":1,"name":"xcSharp"}],"size":1,"msg":"查询成功"}
data实体
public class TestModel
{
public string id{ get; set; }
public string name{ get; set; }
}
数据解析 方式1
JObject jo = (JObject)JsonConvert.DeserializeObject(contenet);
string zone = jo["data"].ToString();
JArray jo1 = (JArray)JsonConvert.DeserializeObject(zone);
int num = jo1.Count;
string getMsg=jo["msg"].ToString();//获取msg
for(int i=0;i<num;i++){
string getName=jo1[i]["name"];//获取name
}
数据解析 方式2
string url = "http://你的api地址";
string contenet = HttpDataUtils.GetJson(url);
JObject jo = (JObject)JsonConvert.DeserializeObject(contenet);
JavaScriptSerializer Serializer = new JavaScriptSerializer();
List<TestModel> list = Serializer.Deserialize<List<TestModel>>(jo["data"].ToString()); //把data里面的数据转成List实体,然后正常获取
string getName=list[0].name;//获取name
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。