JSON.net反序列化
问题描述:
我是JSON编码字符串。我也有C#类:
I have a string which is JSON encoded. I'm also having C# class:
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吧:
I am desirializing it with:
plist = JsonConvert.DeserializeObject<List<Pupu>>(stringAbove);
我不断收到:
I am keep getting:
Attempt to access the method failed: System.Collections.Generic.List`1..ctor();
谢谢,我现在正在找这为几个小时。 (我很新的C#)
Thanks, I'm looking for this for few hours now. (I'm pretty new to C#).
答
让我们试着清理你的代码:
Let's try to clean up your code:
public class Score
{
public string user { get; set; }
public string number { get; set; }
}
和现在你可以反序列化JSON成分数的列表:
and now you can deserialize the JSON into a list of scores:
List<Score> plist = JsonConvert.DeserializeObject<List<Score>>(stringAbove);
和这里有一个完整的例子:
and here's a full example:
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);
}
}
}