序列化复杂对象列表到JSON



我不知道如何获得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转换器,您是否将这些值分配给构造函数的值转换给了类属性,名称和向量?哪种类型的值是"头","腿","躯干"和位置,是这些字符串或物体。

相关内容

  • 没有找到相关文章

最新更新