为什么我的JavaScriptSerializer返回空的json对象?

时间:2014-07-25 21:29:11

标签: c# json

我有一个数据点列表,定义如下:

public class Point {
    string Rate;
    string Date;
    string Number;

    public Point(string Rate, string Date, string Number)
    {
        this.Rate = Rate;
        this.Date = Date;
        this.Number = Number;
    }
}

然后在我的代码中我有:

List<Point> points = populatedList;
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();

string text = javaScriptSerializer.Serialize(points);

System.IO.File.WriteAllText(@"C:\Users\Public\WriteText.txt", text);

然而,当我去查看“WriteText.txt”时,我所拥有的只是一堆空括号:{}, {}, {} ...我也尝试过只用一点,然后我只留下一个匹配一对括号。然后我尝试单独序列化一个字符串对象,并且运行正常。为什么JavaScriptSerializer的行为不符合预期?

1 个答案:

答案 0 :(得分:16)

  

默认情况下,类成员和结构成员(包括嵌套类和结构)的访问级别是私有的。 - Access ModifiersMSDN

因此,序列化将不会看到这些属性。为了将它们序列化,需要将它们标记为公共。他们还需要有一个公共getter才能让序列化程序读取属性。

public string Rate { get; set; }
public string Date { get; set; }
public string Number { get; set; }