【问题标题】:Eclipse - YAML error : Expected a 'String' but got a 'Mapping' nodeEclipse - YAML 错误:需要一个“字符串”但有一个“映射”节点
【发布时间】:2020-06-10 12:59:27
【问题描述】:

我在 YAML 文件中添加我自己的自定义属性。现有的 Spring 属性可以正常工作,但我自己的自定义属性会变成黄色下划线,这会在项目中产生警告。有一个选项可以添加到元数据中,但是一旦我这样做了,警告就会变成这个错误:

Expected a 'String' but got a 'Mapping' node

这就是我要添加的内容:

com:
  foo:
    bar:
      foobar:
        someString: hello
        someBoolean: true

这个 YAML 元数据存储在哪里,我如何告诉它 com 不是字符串,而实际上是一个映射节点?

******编辑******

我发现元数据存储在 META-INF 文件夹中的一个名为 additional-spring-configuration-metadata.json 的文件中。例如,如果我告诉 Eclipse 为 com 生成元数据,则会将其添加到所述文件中:

{"properties": [{
  "name": "com",
  "type": "java.lang.String",
  "description": "A description for 'com'"
}]}

您必须将java.lang.String 更改为什么才能使com 接受foo 等等?

【问题讨论】:

  • 你用什么来编辑/验证 YAML?
  • 我正在使用从 Eclipse Marketplace 获得的 YAML 编辑器 1.6.2
  • 我刚刚在 META-INF 文件夹中找到了一个名为“/additional-spring-configuration-metadata.json”的文件,其中包含我需要的内容。我需要将 java.lang.String 更改为什么才能知道它是一个映射节点?
  • 在属性中将“name”更改为“com.foo”,将“type”更改为(完全限定的类名)

标签: java eclipse yaml metadata


【解决方案1】:

你好我是提到的eclipse插件的维护者(https://marketplace.eclipse.org/content/yaml-editor

通常,当您在使用 yaml 编辑器插件时遇到问题时,建议您在 https://github.com/de-jcup/eclipse-yaml-editor/issues 上为此创建问题

我尝试了您给定的示例,当前版本 1.6.2 没有出现错误。你确定你真的在使用 Yaml-Editor 打开你的文件,而不是另一个安装的编辑器吗?为确保您应尝试通过文件和Open with -> Yaml Editor 的上下文操作(例如,在项目资源管理器中)打开文件。

如果还有问题,请在 github 上创建 issue 并添加此问题的链接。

【讨论】:

  • 你是对的,YAML 编辑器安装并没有完全完成,所以它仍然使用默认的 Eclipse 编辑器打开,该编辑器在黄色没有元数据的属性下划线并提供创建它。创建后,我的问题出现在将包名称创建为字符串的地方。我不再有黄色下划线,但我仍然想知道如何正确记录元数据。
  • Yaml 编辑器插件 - 至少目前 - 没有特殊的元数据处理。它只需要 yaml 文件(任何类型),使用蛇解析器来解析内容。如果存在解析错误,则会出现在 UI 中(另请参阅 github.com/de-jcup/eclipse-yaml-editor/wiki)。
猜你喜欢
  • 2014-11-18
  • 2021-04-23
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-05-10
相关资源
最近更新 更多