2013-05-13 76 views
0

我下面這個反序列化JSON例如: Deserialize JSON with C#JSON反序列化的C#錯誤

,但我碰到的一個問題。我的json文件有不同的結構。

"data": [ 
    { 
    "id": "157156474316544_575441765821344", 
    "from": { 
     "name": "Testy McTest", 
     "id": "624161969" 
    }, 
    "message": "I am a message"... 

所以,當我實例串行:

FacebookFeed facebookPosts = new JavaScriptSerializer().Deserialize<FacebookFeed>(jsonFromWeb); 

我得到的錯誤「爲類型‘System.String’的定義無參數的構造函數。」

如果有人知道如何解決這個問題,我將不勝感激。

我的結構是:

public class FacebookFeed 
{ 
public List<FacebookPost> data { get; set; } 
} 

public class FacebookPost 
{ 
public string id  { get; set; } 
public string from  { get; set; } 
public string message { get; set; } 
} 
+2

from是一個對象,但是它將其標記爲一個字符串? – Lloyd 2013-05-13 14:57:40

+0

http://json2csharp.com/ – I4V 2013-05-13 15:11:14

回答

3

問題是from是一個複雜的(它有幾個用戶屬性/屬性 - ID,姓名)對象,但你已經宣佈它作爲普通字符串。 試着這麼做:

public class Sender 
{ 
public string id {get;set;} 
public string name {get;set;} 
} 

public class FacebookPost 
{ 
public string id  { get; set; } 
public Sender from  { get; set; } 
public string message { get; set; } 
} 
+0

非常感謝你,工作! – Luca 2013-05-13 15:16:46

0

'從' 是一個對象,而不是字符串。因此你會得到錯誤「沒有無參數的構造函數爲'System.String'類型定義。」