Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将复杂对象列表序列化为JSON_C#_Json_File Io_Json.net - Fatal编程技术网

C# 将复杂对象列表序列化为JSON

C# 将复杂对象列表序列化为JSON,c#,json,file-io,json.net,C#,Json,File Io,Json.net,我不知道如何让Newtonsoft.Json序列化此列表: var player = new List<ISprite> { new Sprite( head, position ), new Sprite( torso, position ), new Sprite( legs, position ) }; fileParser.Write( "save.json", player ); 文件已创建,但结果始终是空

我不知道如何让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类中似乎没有任何公共字段/属性。解决这个问题的方法是将
[JsonProperty]
属性添加到要序列化的私有字段中

事实上,您的代码很好,应该可以正常工作。 问题是,可能您将这些Sprite实例空传递给json转换器,您是否将传递给构造函数的这些值赋给类属性、名称和向量?
什么类型的值是“头”、“腿”、“躯干”和位置,这些是字符串还是对象。

精灵的定义在哪里?它有公共财产/场地吗?我没意识到它们必须是公共的。尽管我不想公开我的
Sprite
类的所有属性,但我还是希望在要序列化的私有字段中添加
[JsonProperty]
属性。你应该把它作为答案贴出来。
[{},{},{}]