项目开发中处理了关于C#中使用JSON数据,进行操作,部分数据存储在list表里面进行调用使用;
1.请求网站api回调一个Json数据,对json数据进行解析并且使用;
2.存储在list表里面,并实现随机提取一个数据;
这是回调回来的j’son数据:
{"code":0,"data":[{"ip":"221.229.196.93","port":26114}],"msg":"0","success":true}
private static List<Data> apiJsonParse() {
string addressApi = "填写你需要获取json的api";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(addressApi);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream myResponseStream = response.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
//返回json字符串
var JsonApi = myStreamReader.ReadToEnd(); //{"code":0,"data":[{"ip":"221.229.196.93","port":26114}],"msg":"0","success":true}
ipJson jsonParse = JsonConvert.DeserializeObject<ipJson>(JsonApi);//data中需要用list才可以存储
return jsonParse.data;
}
定义类,需要和json数据里面的类一一对应,还有data里面的数据,需要用list处理,否则会出现反序列化问题;
class ipJson {
public int code;
public List<Data> data; //data中数据多需要分开处理,一直都是data这一步出问题
public string msg;
public bool success;
}
class Data {
public string ip;
public int port;
}
List<Data> data = apiJsonParse();
Random random = new Random();
int i = random.Next(0,500); //生成一个随机数 0 - 500
string proxy = data[i].ip + ":" + data[i].port;
进行调用和使用,并且调取500个数据随机抽取;以及调用;