C# 传入的对象无效,应为成员名称

C# 传入的对象无效,应为成员名称,c#,json,C#,Json,我正在尝试使用JavaScriptSerializer.DeserializeObject(line)对象将json字符串转换为字典 现在,这段代码在我的Windows 8计算机上、在我的测试服务器Windows 2008 Enterprise R2 Service Pack 2上可以完美地工作,但在Windows 2008标准R2 Service Pack 1上不工作 下面是我的代码的快照: JavaScriptSerializer objScriptSerializer = new Java

我正在尝试使用JavaScriptSerializer.DeserializeObject(line)对象将json字符串转换为字典

现在,这段代码在我的Windows 8计算机上、在我的测试服务器Windows 2008 Enterprise R2 Service Pack 2上可以完美地工作,但在Windows 2008标准R2 Service Pack 1上不工作

下面是我的代码的快照:

JavaScriptSerializer objScriptSerializer = new JavaScriptSerializer();
Dictionary<string, object> dictJson = null; 
dictJson = (Dictionary<string, object>)objScriptSerializer.DeserializeObject(line);

谁能告诉我哪里出了问题。

好的,我已经通过3个不同的在线验证程序运行了您的JSON

  • 我这样做是因为与此错误消息相关的许多其他堆栈溢出问题在解析器格式中发现了轻微错误,这导致了错误的发生。例如:

  • 我还通过以下方式处理了您的输入:

    dictJson = objScriptSerializer.Deserialize<Dictionary<string, object>>(line);
    
    dictJson=objscript序列化程序。反序列化(行);
    
    但没有发现任何变化,正如我在评论中所说的,我无法重现这个问题

    如果这只发生在一台机器上,那一定是环境问题。也许有一个.NET补丁可以应用。例如,此修补程序修复了JavaScriptSerializer

    我认为您最好的选择是确保故障机器与所有.NET修补程序和服务包都是最新的

    更新

    以下是有关如何访问上述补丁的一些详细信息。上面的链接引用了以下知识库-。因为它声明只有在向MS发出请求时才可用。但是,对该知识库的后续更新也会引用以下链接:

    在该链接上,它表示此修补程序在以下OS service Pack中可用:

    修补程序汇总2889629可用于Windows上的.NET Framework 4 Server 2003 SP2、Windows XP SP3、Windows Vista SP2、Windows 7 SP1、, Windows Server 2008 SP2和Windows Server 2008 R2 SP2


    我无法复制你的问题-对我来说非常有效。Windows 7 VS2013。我现在应该做什么?它是否与任何更新相关?我需要在我的另一台机器上安装。谢谢彼得R的回复。甚至我都认为它与windows update有关。再次感谢你抽出时间。我去了那个页面下载那个软件,但是链接不可用。我知道在哪里可以下载那个软件。我仍然无法解决这个错误?我应该如何手动获取此更新?我不能自动更新生产服务器ryt?我安装了.Net Framework 4.5,它解决了我的问题。因此,问题的当前状态已解决。我直到刚才才注意到您的消息。我很高兴它现在已经解决了。我将更新这篇文章,详细介绍如何下载此修补程序。安装.NET4.5也解决了我的问题。谢谢
    dictJson = objScriptSerializer.Deserialize<Dictionary<string, object>>(line);