我不知道如何获得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 );
}
创建文件,但结果始终是一个空对象的数组:
[{},{},{}]
我在这里做错了什么?
看来,您在精灵类中没有任何公共字段/属性。解决方案可以将[JsonProperty]
属性添加到要序列化的私有字段
实际上您的代码很好,它应该正常工作。问题是,也许您将这些精灵实例传递给了JSON转换器,您是否将这些值分配给构造函数的值转换给了类属性,名称和向量?哪种类型的值是"头","腿","躯干"和位置,是这些字符串或物体。