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# Newtonsoft JSON拒绝反序列化XNA矩形_C#_Json_Serialization_Xna_Json.net - Fatal编程技术网

C# Newtonsoft JSON拒绝反序列化XNA矩形

C# Newtonsoft JSON拒绝反序列化XNA矩形,c#,json,serialization,xna,json.net,C#,Json,Serialization,Xna,Json.net,我很困惑。我试图通过Newtonsoft.JSON序列化保存游戏的当前状态。到目前为止一切都很好,它工作得很好,我得到了一个字符串,其中包含了json格式的所有我需要的信息。但当我试图反序列化它时,麻烦来了: An unhandled exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll Additional information: Error conver

我很困惑。我试图通过Newtonsoft.JSON序列化保存游戏的当前状态。到目前为止一切都很好,它工作得很好,我得到了一个字符串,其中包含了json格式的所有我需要的信息。但当我试图反序列化它时,麻烦来了:

An unhandled exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.dll

Additional information: Error converting value "{X:-32 Y:-32 Width:64 Height:64}" to type 'Microsoft.Xna.Framework.Rectangle'. Path 'GameElements[0].Hitbox', line 5, position 51.
当我点击details时,它说“无法从System.String转换为Microsoft.XNA.Framework.Rectangle。但这不正是json反序列化程序的工作吗?”

提前谢谢,希望你知道是什么原因造成的

PS:反序列化代码:

JsonConvert.DeserializeObject<GameState>(
            GameSettings.Default.SaveStates[name],
            new JsonSerializerSettings()
            {
                TypeNameHandling = TypeNameHandling.Auto
            });
JsonConvert.DeserializeObject(
GameSettings.Default.SaveState[名称],
新的JsonSerializerSettings()
{
TypeNameHandling=TypeNameHandling.Auto
});
编辑:感谢所有的帮助,但事实证明我只是一个derp…我序列化的矩形是一个没有setter的属性。但我还想证明json.net对这种错误没有任何有意义的帮助


Edit2:非常有趣的是,XNA矩形即使有setter(重复注释)也无法序列化。

这不是有效的JSON-
name:value
对之间应该有逗号(
),即
{X:-32,Y:-32,…}
,看起来像
ToString()
format。矩形是否实际序列化为JSON?我使用Newtonsoft.JSON.JsonConvert.SerializeObject(object)创建了此JSON。它应该是有效的,还是我完全误解了什么?@PMaker向我们展示了用于序列化矩形的代码。可能的重复项