【问题标题】:.net core: Invalid property identifier character: {. Path 'Logging', line 10, position 2. Newtonsoft.Json.JsonTextReader.ParseProperty().net 核心:无效的属性标识符字符:{。路径“记录”,第 10 行,位置 2。Newtonsoft.Json.JsonTextReader.ParseProperty()
【发布时间】:2018-05-28 01:05:30
【问题描述】:

我将 Angular CLI 添加到我的项目中,一切正常。然后我决定单击 Visual Studio 2017 顶部的小标志,这表明 VS 2017 有一个新更新。我安装了它并重新启动了我的 Windows 10 PC。

现在它使用 F6 成功构建,但是当我在浏览器中 F5Ctrl+F5 我的 .net 核心 mvc 应用程序时出现以下错误:

截图:https://imgur.com/wFFN1r8

启动应用程序时出错。

JsonReaderException:无效的属性标识符字符:{。小路 “记录”,第 10 行,位置 2。 Newtonsoft.Json.JsonTextReader.ParseProperty()

FormatException:无法解析 JSON 文件。行号错误 '10':'},{'。 Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(bool 重新加载)

JsonReaderException:无效的属性标识符字符:{。小路 “记录”,第 10 行,位置 2。 Newtonsoft.Json.JsonTextReader.ParseProperty() Newtonsoft.Json.Linq.JContainer.ReadContentFrom(JsonReader r, JsonLoadSettings 设置) Newtonsoft.Json.Linq.JContainer.ReadTokenFrom(JsonReader 阅读器, JsonLoadSettings 选项)Newtonsoft.Json.Linq.JObject.Load(JsonReader 阅读器,JsonLoadSettings 设置) Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.Parse(流 输入) Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(流 流)

我的 appsettings.json 文件如下所示:

{
   "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
     }
   }
}

我想不出任何其他 .json 文件会成为问题。我删除了我添加的 Angular 客户端应用程序文件夹,它仍然产生相同的错误。

我不知道从哪里开始尝试解决这个问题,而且 Google 没有提出任何其他具有相同问题的帖子。

建议?

【问题讨论】:

  • 你检查过你的其他配置文件了吗?这个看起来不错。
  • @DanielA.White 我查看了所有 json 文件,startup.cs、program.cs,确认所有 nuget 包都是最新的。很难诊断,因为构建是成功的,所以任何地方都没有红色下划线,而且 Visual Studio 中也没有错误。这是错误的屏幕截图:imgur.com/wFFN1r8
  • 您也许可以全局启用 Json.NET 跟踪以更好地了解问题。要在JsonSerializerSettings 中启用跟踪,请参阅newtonsoft.com/json/help/html/SerializationTracing.htm。要全局修改设置,请参阅Set default global json serializer settings。但是由于问题发生在启动过程中,您必须在启动过程的早期进行...
  • @RJay 你有appsettings.Development.json(或类似的)吗?如果 Visual Studio 在开发环境中启动您的应用程序,那么它将是 appsettings.json 然后读取 appsettings.Development.json 并应用它在该 json 中找到的值,这些值未包含在 appsettings 之一中。开发人员特定的可能有一些无效字符。
  • appsettings.Development.json 是问题所在。谢谢@JamieTaylor!

标签: c# json asp.net-mvc visual-studio asp.net-core


【解决方案1】:

@Jamie Taylor 想通了。

除非您展开 appsettings.json,否则我没有看到的一个文件是“appsettings.Development.json”。

我有:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  },
  {
    "AWS": {
      "Profile": "Default",
      "Region": "us-east-1"
    }
  }
}

它在同一天早些时候工作,我可以在我的 Windows 文件资源管理器中看到该文件在过去 2 周内没有更改。此 JSON 文件的格式不正确。由于我不再需要 AWS 的东西,我只是删除了该部分,现在它的工作方式如下:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

【讨论】:

  • 很高兴能帮上忙
  • 如果您想知道是第 10 行的大括号字符 ( "{" ) 导致了您的问题。 JSON 格式正确后应如下所示:pastebin.com/Pn3TJfV6
【解决方案2】:

请删除开始和结束位置的 ( ) 符号。对我有帮助。

我得到 json 为

( { result : "" } )

它现在可以工作了

{ result : "" }

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 2020-12-15
    • 2022-01-08
    • 2023-03-09
    • 1970-01-01
    • 2021-04-03
    • 2019-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多