我有一个数据点列表,定义如下:
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
表现不符合预期?
The access level for class members and struct members, including nested classes and structs, is private by default. - Access ModifiersMSDN http://msdn.microsoft.com/en-us/library/ms173121.aspx
因此,序列化将看不到这些属性。为了使它们被序列化,需要将它们标记为公共。它们还需要有一个公共 getter 以便序列化器读取属性。
public string Rate { get; set; }
public string Date { get; set; }
public string Number { get; set; }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)