[英]InvalidCastException while trying to deserialize JSON in C#
我正在嘗試反序列化Json流。 我在Windows Phone 7的Visual Studion下工作。這是我正在使用的代碼:
public Accueil()
{
InitializeComponent();
string baseUri = "http://path/to/my/webservice";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(baseUri));
request.BeginGetResponse(new AsyncCallback(ReadCallback), request);
}
private void ReadCallback(IAsyncResult asynchronousResult)
{
HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
using (StreamReader streamReader1 = new StreamReader(response.GetResponseStream()))
{
string returnedString= streamReader1.ReadToEnd();
using (MemoryStream mStream = new MemoryStream(Encoding.Unicode.GetBytes(returnedString)))
{
List<Person> persons = new List<Person>();
persons= returnResult(mStream);
}
}
}
private List<Person> returnResult(MemoryStream mStream)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Person>));
return (List<Person>)serializer.ReadObject(mStream);
}
如您所見,我打電話給我的網絡服務給我一個回復。 然后,調用異步方法來處理webrequest並獲取返回的數據。 最后,antoher方法對該數據進行serilize並返回一個Person列表。
當然,還有一個“人”類:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
問題是在“returnResult”方法中返回了無效的強制轉換錯誤:
InvalidCastException
在那一行:
return (List<Person>)serializer.ReadObject(mStream);
你對退回的錯誤有所了解嗎? 我能做什么?
這是一個Json樣本:
{
"Persons" :
[
{"FirstName":"Foo","LastName":"Bar"},
{"FirstName":"Hello","LastName":"World"}
]
}
謝謝,
問候
(老問題,但為什么不回答:))
您的Json與人員名單不符,但只有1個包含財產人的對象(這是一份人員名單)
喜歡:
public class AllPeople {
public List<Person> Persons { get;set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.