我无法弄清楚如何让Newtonsoft.Json序列化这个列表:
var player = new List<ISprite>
{
new Sprite( head, position ),
new Sprite( torso, position ),
new Sprite( legs, position )
};
fileParser.Write( "save.json", player );
Sprite
构造函数有两个参数:第一个是资产的名称,第二个是向量。 FileParser.Write
定义为:
public void Write<T>( string fileName, T data )
{
if ( string.IsNullOrEmpty( fileName ) )
{
throw new ArgumentNullException();
}
var json = JsonConvert.SerializeObject( data );
File.WriteAllText( fileName, json );
}
创建了文件,但结果始终是一个空对象数组:
[{},{},{}]
我在这里做错了什么?
答案 0 :(得分:2)
您的Sprite类似乎没有任何公共字段/属性。对此的解决方案是将[JsonProperty]
属性添加到要序列化的私有字段
答案 1 :(得分:0)
事实上你的代码很好,它应该正常工作。 问题是,您可能将这些Sprite实例传递给json转换器,您是否将这些传递给构造函数的值分配给类属性,名称和Vector? 什么类型的值是“头”,“腿”,“躯干”和位置,是这些字符串或对象。