当前位置:   article > 正文

C#获取http请求的JSON数据并解析_c#通过网站url获取返回的json

c#通过网站url获取返回的json

C#获取http请求的JSON数据并解析,第一步,先拿到http的数据,第二步,把JSON转为list(或者使用JArray对象解析),然后就可以正常使用数据了。

1️⃣ C#获取http请求的JSON数据并解析

1.1 获取http的JSON数据

封装好的方法直接调用

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

实际应用

string url = "http://你的api地址";
string contenet = HttpDataUtils.GetJson(url);//获取json串
  • 1
  • 2

1.2 解析JSON数据

引用

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
  • 1
  • 2

json格式

{"state":200,"data":[{"id":1,"name":"xcSharp"}],"size":1,"msg":"查询成功"}
  • 1

data实体

public class TestModel
{
        public string id{ get; set; }
        public string name{ get; set; }
}
  • 1
  • 2
  • 3
  • 4
  • 5

数据解析 方式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
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

数据解析 方式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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

优质资源分享

推荐阅读
相关标签