C# 如何检测来自服务器的响应json字符串的形式,以及如何解析和使用它?
我有一个c程序,它向服务器发送一些请求,并以json格式接收一些响应字符串 服务器以以下json形式之一发送响应: 此方法在收到服务器的响应后执行:C# 如何检测来自服务器的响应json字符串的形式,以及如何解析和使用它?,c#,json,json.net,C#,Json,Json.net,我有一个c程序,它向服务器发送一些请求,并以json格式接收一些响应字符串 服务器以以下json形式之一发送响应: 此方法在收到服务器的响应后执行: struct param { public String url, postjson; public Object res; } void sendtoserverCallback(object sender, EventArgs e) { RunWorkerCompletedEventArgs e2 = (RunWorke
struct param
{
public String url, postjson;
public Object res;
}
void sendtoserverCallback(object sender, EventArgs e)
{
RunWorkerCompletedEventArgs e2 = (RunWorkerCompletedEventArgs)e;
param response = (param)e2.Result;
Object res = JsonConvert.DeserializeObject(response.res.ToStrin g());
}
response json位于response.res中
我使用.NETFramework 3.5和JSON.net进行解析
现在我如何检测json格式是res,以及如何使用它
格式1中的响应json示例:
{needUserChoose:[{类型:视频/mp4,url:http://youtube.com/?id=55,尺码:[1578978020,1.47
GB],视频id:TmE\U HSoDIUY,名称:国家末日-TotalBizzie
与史诗般的用餐时间-所有4场比赛+RL
采访,id:55},{type:video/webm,url:http://youtube.com/?id=56,尺码:[442230006421.74
MB],视频id:TmE_HSoDIUY,名称:国家末日-TotalBizzie
与史诗般的用餐时间-所有4场比赛+RL
采访,id:56},{type:video/mp4,url:http://youtube.com/?id=57,尺码:[383706129365.93
MB],视频id:TmE_HSoDIUY,名称:国家末日-TotalBizzie
与史诗般的用餐时间-所有4场比赛+RL
采访,id:57},{type:video/x-flv,url:http://youtube.com/?id=58,大小:[191339943182.48 MB],视频识别码:TmE_HSoDIUY,名称:国家末日-Totalbiscuit
与史诗般的用餐时间-所有4场比赛+RL
采访,id:58},{类型:视频/3gpp,url:http://youtube.com/?id=59,尺码:[126227794120.38
MB],视频id:TmE_HSoDIUY,名称:国家末日-TotalBizzie
与史诗般的用餐时间-所有4场比赛+RL
采访,id:59},{类型:视频/3gpp,url:http://youtube.com/?id=60,尺码:[44943692,42.86
MB],视频id:TmE_HSoDIUY,名称:国家末日-TotalBizzie
与史诗般的用餐时间-所有4场比赛+RL
采访,id:60}],域名:youtube.com}
格式2中的响应json示例:
{收到:true,大小:[44943692,42.86 MB],名称:国家末
-Total饼干vs.史诗般的用餐时间-所有4场比赛+RL采访。3gp,url:https://r16--sn-4g57kn6s.googlevideo.com/videoplayback?key=yt5&ip=2a01%3A4f8%3A192%3A43e1%3A%3A2&fexp=906956%2C945005%2C929209%2C931014%2C945807%2C913434%2C923341&upn=YA5ES2SkUTs&uinitcwndbps=403000&itag=17&requiressl=yes&mt=1400781466&mws=yes&mv=m&id=o-Adwpucaqakijiu0_EJArWgPb8yJcrPSiOy8jm9uJC&ms=au&signature=2d17757b591677ad55fe64515eedc0469d390.5d52b0a9a14a76775b3af091f21cc21a664263b&source=youtube&sparams=id%2Cip%2Cipbits%2Citag%2Crequiressl%2Cuinitcwndbps%2Cupn%2Cexpire&expire=140080173&sver=3&ipbits=0,文件:http://www.dlbazi.com/multidl/downloads/End_of_Nations_-_Totalbiscuit_vs._Epic_Meal_Time_-_所有匹配的采访。3gp}
编辑:我有两个问题
1-我们假设响应字符串的形式为1。现在我必须首先声明一个结构,然后将响应字符串转换为它吗
struct form1
{
public String domain;
public a[] needUserChoose;
}
struct a
{
public int id;
public String name, type, url, video_id;
public String[] size;
}
void sendtoserverCallback(object sender, EventArgs e)
{
RunWorkerCompletedEventArgs e2 = (RunWorkerCompletedEventArgs)e;
param response = (param)e2.Result;
form1 res = (form1)JsonConvert.DeserializeObject(response.res.ToString());
}
但是这抛出了一个无效的CastException例外
2-如何检测服务器响应json字符串的json格式 我建议您添加表单id作为一个键,这样至少您可以知道对它的响应form@Dibu请给我一个代码示例!!好的,首先告诉我您是否编写了发送响应的服务器端api?好的,然后当您向服务器发送请求时,在查询字符串或标题中添加表单id,然后在响应中附加表单id没有其他方法吗??因为更改服务器端代码非常困难。我编辑了我的问题。请再读一遍,给我一个问题1的答案