2012-05-10 76 views
3

我這是JSON編碼的字符串。我也有C#類:JSON.net反序列化

class Pupu{ 
    public static List<Pupu> plist = new List<Pupu>(); 
    public string user {get; set;} 
    public string number {get; set;} 
} 


[{"user":"27FFBADD7284E5CB98EAC45559589E28FDDDC3AD","number":"62827"},{"user":"27FFBADD7284E5CB98EAC45559589E28FDDDC3AD","number":"30460"}, {"user":"0D27D44D40C5185423078B3C93B3E6B596AD21A0","number":"25143"}, {"user":"0D27D44D40C5185423078B3C93B3E6B596AD21A0","number":"22776"}, {"user":"27FFBADD7284E5CB98EAC45559589E28FDDDC3AD","number":"19755"}] 

我與desirializing它:

plist = JsonConvert.DeserializeObject<List<Pupu>>(stringAbove); 

我不斷收到:

Attempt to access the method failed: System.Collections.Generic.List`1..ctor(); 

謝謝,我正在找這幾對現在幾小時。 (我對C#很陌生)。

+0

您不能在類X的聲明中擁有類X的實例。 –

回答

12

讓我們試着清理你的代碼:

public class Score 
{ 
    public string user { get; set; } 
    public string number { get; set; } 
} 

,現在你可以反序列化JSON成分數的列表:

List<Score> plist = JsonConvert.DeserializeObject<List<Score>>(stringAbove); 

,這裏是一個完整的例子:

public class Score 
{ 
    public string user { get; set; } 
    public string number { get; set; } 
} 

class Program 
{ 
    static void Main() 
    { 
     var json = "[{\"user\":\"27FFBADD7284E5CB98EAC45559589E28FDDDC3AD\",\"number\":\"62827\"},{\"user\":\"27FFBADD7284E5CB98EAC45559589E28FDDDC3AD\",\"number\":\"30460\"}, {\"user\":\"0D27D44D40C5185423078B3C93B3E6B596AD21A0\",\"number\":\"25143\"}, {\"user\":\"0D27D44D40C5185423078B3C93B3E6B596AD21A0\",\"number\":\"22776\"}, {\"user\":\"27FFBADD7284E5CB98EAC45559589E28FDDDC3AD\",\"number\":\"19755\"}]"; 
     List<Score> plist = JsonConvert.DeserializeObject<List<Score>>(json); 

     foreach (Score score in plist) 
     { 
      Console.WriteLine("user: {0}, number: {1}", score.user, score.number);  
     } 
    } 
} 
+0

這是我的錯誤,它在實際文件中是相同的類名。對不起 – ewooycom

+0

我錯過了公開關鍵字。謝謝 – ewooycom

+1

是的,你錯過了你的問題中的幾件事。這就是爲什麼我決定發佈一個完整的工作示例,您可以運行並適應您的要求。 –