【问题标题】:JSON to dynamic - 'Newtonsoft.Json.Linq.JObject' does not contain a definitionJSON 到动态 - 'Newtonsoft.Json.Linq.JObject' 不包含定义
【发布时间】:2022-02-22 01:56:18
【问题描述】:

我正在使用 MVC WebAPI 并将 JSON 对象传递给将参数定义为动态的方法。使用该方法时,我正在访问动态对象的属性。它向我抛出了这个错误 - 'Newtonsoft.Json.Linq.JObject' 不包含定义'

private dynamic Method1([FromBody]dynamic obj)
{
  if (obj.Name.Value == "Hello")
  {
   //Code
  }
}

JSON 有正确的键值对。

此代码在其他机器上运行良好,但在其中一台机器上抛出错误。只是想知道我的安装是否有问题或者我遗漏了什么?

【问题讨论】:

  • 您的obj 是否包含代表 JSON 或对象本身的字符串?尝试快速查看 obj。
  • 它是具有字符串化JSON对象的字符串。

标签: asp.net-mvc asp.net-mvc-4 dynamic asp.net-web-api


【解决方案1】:

我在使用 Json.NET 作为私有程序集的应用程序中遇到了类似的问题。该问题仅在特定机器上发生,结果证明该机器在 GAC 中安装了另一个版本的 Json.NET。从 GAC 中删除后,该应用程序开始正常工作。

【讨论】:

    【解决方案2】:

    从 GAC 中清除了 dll,现在一切正常!

    【讨论】:

    • 你是怎么做到的?你能帮忙吗?
    【解决方案3】:

    JSON.Net 的创建者本人解决了这个问题here

    确保它是次要的,例外是设计使然。

    顺便说一句,如果您想禁用这些警告只是因为它们让您感到不舒服。

    在 Visual Studio 中点击 Tools -> Options 然后选择 Debugging 并选中 Enable Just My Code 复选框。 p>

    更多信息Stackoverflow

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-27
      • 2015-09-17
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-03
      相关资源
      最近更新 更多