3
我試圖反序列化Json流。 我在Visual Studion工作的Windows Phone 7 這裏是我使用的代碼:這給了我一個響應嘗試反序列化C中的JSON時InvalidCastException
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);
}
正如你所看到的,我打電話給我的web服務。然後,調用異步方法來處理webrequest並獲取返回的數據。最後,antoher方法使用這些數據並返回一個人員列表。
當然,有一個「人」類:
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字符串嗎? – 2010-09-28 15:33:24
查看帖子。問候。 – Zakaria 2010-09-28 15:39:23
你解決了這個問題嗎? – Phil 2011-05-31 19:13:20