c#中json字符串的反序列化

本文关键字:反序列化 字符串 json | 更新日期: 2023-09-27 18:26:00

我正在尝试取消实现json字符串的值,如下所示

{"data":[
{"description":"xxxxxx","created_time":1330356685},
    {"description":"zzzz","created_time":1329817903}
]}

我的课如下:

public class NewFriends
{
    public Data[] data { get; set; }
    public class Data
    {
        string description { get; set; }
        int created_time { get; set; }
    }
}

但是当我取消实现值时,我会在nFnds 的数组索引中获得null值

NewFriends nFrnds = serializer.Deserialize<NewFriends>(newFriends);

请帮忙!

c#中json字符串的反序列化

我建议您考虑使用Json.Net。这将使反序列化过程变得轻而易举。

PM>安装软件包Newtonsoft.Json

public class NewFriends
{
    public List<Data> data { get; set; }
}
public class Data
{
     string description { get; set; }
     int created_time { get; set; }
}
var jsonObj = @"{"data":[
{"description":"xxxxxx","created_time":1330356685},
    {"description":"zzzz","created_time":1329817903}
]}"

NewFriends newFriends = JsonConvert.DeserializeObject<NewFriends>(jsonObj);

这段代码对我来说很好:

string s = "{'"data'":[{'"description'":'"xxxxxx'",'"created_time'":1330356685},    {'"description'":'"zzzz'",'"created_time'":1329817903}]}";
JavaScriptSerializer jss = new JavaScriptSerializer();
NewFriends nFrnds = jss.Deserialize(s, typeof(NewFriends)) as NewFriends;
MessageBox.Show(nFrnds.data.Length.ToString());

尝试使用List而不是Array

public class NewFriends
{
    public List<Data> data { get; set; }
}
public class Data
{
     string description { get; set; }
     int created_time { get; set; }
}