我想了很多個小時來解析JsonArray,我有graph.facebook,所以我可以額外的價值。我想要提取的值是消息和ID。解析Json Facebook的c#
獲取JasonArry是沒有問題,正常工作:
[
{
"code":200,
"headers":[{"name":"Access-Control-Allow-Origin","value":"*"}],
"body":"{
\"id\":\"255572697884115_1\",
\"from\":{
\"name\":\"xyzk\",
\"id\":\"59788447049\"},
\"message\":\"This is the first message\",
\"created_time\":\"2011-11-04T21:32:50+0000\"}"},
{
"code":200,
"headers":[{"name":"Access-Control-Allow-Origin","value":"*"}],
"body":"{
\"id\":\"255572697884115_2\",
\"from\":{
\"name\":\"xyzk\",
\"id\":\"59788447049\"},
\"message\":\"This is the second message\",
\"created_time\":\"2012-01-03T21:05:59+0000\"}"}
]
現在,我已經嘗試了幾種方法來獲得訪問信息,但是每一個方法在捕撈結束...並拋出異常。
例如:
var serializer = new JavaScriptSerializer();
var result = serializer.Deserialize<dynamic>(json);
foreach (var item in result)
{
Console.WriteLine(item.body.message);
}
拋出異常:System.Collections.Generic.Dictionary犯規包含體的定義。不過,您在下面的屏幕截圖中看到,該主體包含定義。
因爲...我不允許張貼圖片,你可以找到它的directupload:http://s7.directupload.net/images/120907/zh5xyy2k.png
我不還沒有更多的想法,所以我請你幫助我。我需要這個項目,私人,而不是商業。
也許你可以給我一個代碼的短語,所以我可以繼續我的發展。
謝謝到目前爲止
多米尼克
謝謝您的非常快的答案。你是對的,你的代碼正在工作,但你手動刪除引號< "body":"{> - ><""body"":{>。我從webclient獲取字符串(實際上是一個流)。沒有任何機會反序列化沒有操縱? – Findus
@DominicFrank我以爲你已經自己添加了這些引號,因爲整個字符串顯然被操縱了。您發佈的字符串不是有效的JSON。轉到http://jsonlint.com並粘貼到那裏。我也嘗試使用你發佈的確切字符串來運行代碼,它甚至沒有傳遞Deserialize行,因爲JavaScriptSerializer由於無效的JSON字符串而引發異常。無論如何,你正在做的錯誤是希望Serializer將創建一個強類型對象。除非你創建一個具有完全相同結構的類並繼續執行 – Icarus
@DominicFrank,你可以告訴序列化器反序列化到該類型。看到這裏的例子:http://stackoverflow.com/questions/7895105/json-deserialize-c-sharp – Icarus