如何将json格式的字符串拆分为.net对象以进行反序列化
本文关键字:对象 net 反序列化 拆分 json 格式 字符串 | 更新日期: 2023-09-27 18:23:43
主题听起来不清楚,但逻辑非常简单。我有一个返回的json格式的响应数据。我想将它反序列化为我已经定义的.net对象。我使用JavaScriptSerializer类Deserialize方法,它要求参数为字符串。现在我的响应数据是json格式的,并且有多个根。
我的代码是
WebRequest request = WebRequest.Create ("https://xxx.xxxxxx.com/xxxxx");
request.Method = "GET";
request.ContentType = "application/json";
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
}
responseText值为
[
{
"webinarKey":5303085652037254656,
"subject":"Test+Webinar+One",
"description":"Test+Webinar+One+Description",
"organizerKey":73563532324,
"times":[{"startTime":"2011-04-26T17:00:00Z","endTime":"2011-04-26T18:00:00Z"}]
},
{
"webinarKey":9068582024170238208,
"name":"Test+Webinar+Two",
"description":"Test Webinar Two Description",
"organizerKey":73563532324,
"times":[{"startTime":"2011-04-26T17:00:00Z","endTime":"2011-04-26T18:00:00Z"}]
}
]
我使用以下代码将responseText反序列化为我定义的.net对象。
JavaScriptSerializer ser = new JavaScriptSerializer();
Webinar w=ser.Deserialize<Webinar>(responseText);
错误显示responseText是一个数组,而不是字符串。那么如何拆分responseText?我认为在这里使用string.split()方法是不合适的。
您的响应文本实际上是一个json数组(包含2个元素),如[
和]
字符所示。尝试以下操作:
Webinar[] w=ser.Deserialize<Webinar[]>(responseText);
您尝试过:List<Webinar> w=ser.Deserialize<List<Webinar>>(responseText);
吗?