2012-08-14 47 views
1

我在C#中設置了一個類來保存我將從Web服務調用接收到的響應。我正在使用RestSharp來處理JSON數據的調用/解析。設置一個類以包含對象列表

的web服務,文檔描述的響應爲:

OUTPUT: JSON object similar to example below. 
    { 
     "response":"[success] or [failed]", 
     "messages":"Process succeeded.", 
     "logonkey":"[logon key]", 
     "tokenkey":"[security token]", 
     "reccount":"1", 
     "filelist": 
      { 
      "fileid":"12345", 
      "status":"N", 
      "filename":"data.tar", 
      "fulfilled":"2012-06-15" 
     } 
    } 

我的問題是我怎麼能在我的類中定義的文件列表數組元素?

我的想法是這樣的:

public class Files 
{ 
    public string Response { get; set; } 
    public string Messages { get; set; } 
    public string LogonKey { get; set; } 
    public string TokenKey { get; set; } 
    public int RecordCount { get; set; } 
    public List<FileList> 
} 

public class FileList 
{ 
    public string FileID { get; set; } 
    public string Status { get; set; } 
    public string Filename { get; set; } 
    public DateTime Fulfilled { get; set; } 
} 

不過,我遇到了「公開名單」的語句有問題。

有關處理這種情況的最佳方法的任何建議,將不勝感激。

+2

更確切地說公共列表的問題是什麼? – Freeman 2012-08-14 20:53:38

+0

上面的代碼將不會編譯(之後的意外令牌錯誤)。我無法添加{get;設置;}元素(無效令牌錯誤)。 – 2012-08-14 20:57:19

+0

,因爲您需要將getter和setter添加到該列表中。 – Freeman 2012-08-14 21:00:44

回答

1

JSON示例中的文件列表看起來不像對象列表。相反,它是一個單一的對象。 你可以嘗試,

public class Files 
{ 
    public string Response { get; set; } 
    public string Messages { get; set; } 
    public string LogonKey { get; set; } 
    public string TokenKey { get; set; } 
    public int RecordCount { get; set; } 
    public FileList File {get; set; } 
} 

如果您確定在JSON文件列表真是對象的列表,你可以嘗試,

public List<FileList> Files = new List<FileList>(); 
+0

對不起,可憐的JSON代碼示例。 FileList可能包含多個對象。在這種情況下,RecordCount將大於1,FileList將包含多個對象。 – 2012-08-14 21:00:56

+0

用對象場景列表更新了答案 – vetti 2012-08-14 21:04:57

+0

感謝維蒂 - 謝謝解決方案的作品。正如弗里曼上面指出的那樣,我忘記命名對象。公開名單 FileList {get;設置;}的作品。 – 2012-08-14 21:07:31

2

你也忘了給它起一個名字,比如試試這個

public List<FileList> MyFavouriteList {get;set;}. 

甲proprety聲明如下「訪問修飾符」,「類型」,「標識符(或名稱)」,「獲取和設置」。

相關問題