【问题标题】:mapping values are not allowed here in "<unicode string>"“<unicode string>”中不允许映射值
【发布时间】:2020-04-18 09:41:31
【问题描述】:

我正在为 Spring Boot 应用程序使用 yml 属性。我在yml 上收到如下错误:

onboarding: 
  api: 
    something: 
      attribute1: 
      attribute2:
    somethingElse: 
      atribute: 
    base-url: http://enpoint.elasticbeanstalk.com
      users: /users ## error here on colon symbol
        save-update: /users/save-update

我的用法如下:

@Value("${onboarding.api.base-url.users}")
@Value("${onboarding.api.base-url.users.save-update}")

我做错了什么?在任何在线解析器上也会出现同样的错误。

【问题讨论】:

    标签: yaml


    【解决方案1】:

    在 YAML 中,每个键都有 一个 值。标量是一个值。嵌套映射也是一个值。显然,您尝试为键 base-url 两个 值,第一个是 URL(它是一个标量),第二个是包含键 users 的映射。那是行不通的。

    所以 YAML 解析 http://enpoint.elasticbeanstalk.com 并看到“好的,这个键包含一个标量值”,然后在下一行,您开始一个嵌套映射。这就是错误消息试图告诉您的内容。

    这将是有效的 YAML:

    onboarding: 
      api: 
        something: 
          attribute1: 
          attribute2:
        somethingElse: 
          atribute: 
        base-url: http://enpoint.elasticbeanstalk.com
        users: /users
        save-update: /users/save-update
    

    这样也可以:

    onboarding: 
      api: 
        something: 
          attribute1: 
          attribute2:
        somethingElse: 
          atribute: 
        base:
          url: http://enpoint.elasticbeanstalk.com
          users:
            path: /users
            save-update: /users/save-update
    

    【讨论】:

    • 感谢您的帮助。所以我通过onboarding.api.base.url.users 访问用户路径?它的值是http://enpoint.elasticbeanstalk.com/users?
    • 不,您通过onboarding.api.base.users.path 访问路径,其值为/users。 YAML 不包含任何连接沿内容结构找到的路径的魔法。
    猜你喜欢
    • 2018-04-22
    • 2021-05-02
    • 2020-10-05
    • 2014-12-13
    • 2019-10-27
    • 2019-08-16
    • 1970-01-01
    • 2017-11-03
    • 2016-07-13
    相关资源
    最近更新 更多