好吧,我之前已經提出過這樣的問題,但這是一個不同的主題,所以我覺得我應該對此做一個新的話題。我很抱歉,如果這事我不應該那樣做......如何從json流反序列化多個對象?
總之:
目前,我正在讀通過twitterfeed,並試圖將其轉換爲失去(狀態)對象。我現在的代碼如下,但失敗:
webRequest = (HttpWebRequest)WebRequest.Create(stream_url);
webRequest.Credentials = new NetworkCredential(username, password);
webRequest.Timeout = -1;
webResponse = (HttpWebResponse)webRequest.GetResponse();
Encoding encode = Encoding.GetEncoding("utf-8");
responseStream = new StreamReader(webResponse.GetResponseStream(), encode);
int i = 0;
//Read the stream.
while (_running)
{
jsonText = responseStream.ReadLine();
byte[] sd = Encoding.Default.GetBytes(jsonText);
stream.Write(sd, i, i + sd.Length);
try
{
status s = json.ReadObject(stream) as status;
if (s != null)
{
//write s to a file/collection or w/e
i = 0;
}
}
catch
{
}
}
想法是:將流複製到另一個流。並不斷嘗試閱讀,直到發現狀態對象。 這是爲了防止溪流變小,所以它有機會成長。當然,這個流並不總是始於一個對象的開始,或者可能是腐敗的。
現在我確實找到了方法IsStartObject
,我想我應該使用它。 雖然我沒有使用流的經驗,但我永遠也找不到如何使用它的好例子。
有沒有人可以向我解釋如何從流中讀取多個對象,以便我可以將它們寫入列表或w/e中。我真的找不到任何在互聯網上的好例子..
非常感謝你的嘗試!
我不知道,我能理解,你爲什麼不讀所有的反應'responseStream.ReadToEnd()'和反序列化到一個類(或解析)? – 2012-01-16 22:06:15
這是一個層出不窮的流(twitter feed)。 Status對象是我想要反序列化的類。但是流保持流式傳輸這些對象(沒有結束)。 – user1149942 2012-01-16 22:07:42
你能分享這個網址以便我們測試它嗎? – 2012-01-16 22:12:04