Grails 使用SnakeYaml加载YAML嵌套映射

Grails 使用SnakeYaml加载YAML嵌套映射,grails,dictionary,groovy,yaml,snakeyaml,Grails,Dictionary,Groovy,Yaml,Snakeyaml,我正试图将YAML文件加载到groovy程序中,但未能成功。我想导入一个带有第一个、最后一个中间名称键的地图,其值是具有相应种族值的名称 这是我正在尝试运行的代码: import java.util.List import java.util.ArrayList import java.io.FileInputStream import java.io.InputStream import org.yaml.snakeyaml.Yaml impor

我正试图将YAML文件加载到groovy程序中,但未能成功。我想导入一个带有第一个、最后一个中间名称键的地图,其值是具有相应种族值的名称

这是我正在尝试运行的代码:

    import java.util.List
    import java.util.ArrayList
    import java.io.FileInputStream
    import java.io.InputStream
    import org.yaml.snakeyaml.Yaml
    import java.util.Map
    import java.util.HashMap

    class BestRandomController {

         def index() {


                String gender, firstName, lastName
                List<String> firstNameList
                List<String> lastNameList
                Map<String, String> mapNames = new HashMap<String, String>()
                Map<String, Map <String, String>> mapPeople = new HashMap<String,Map <String,String>>()
                InputStream inputter = new FileInputStream(new File("/home/ian/Desktop/dataGeneration/vimNames.yaml"))




               Yaml sneakySnake = new Yaml()
               mapPeople=sneakySnake.load(inputter)

               render mapPeople

               render mapPeople.get('lastNames')

               mapNames = mapPeople.get('lastNames')

我能做些什么来让它工作?我想知道这是否是我的代码或YAML文件设置中的一个问题,尽管我的文件看起来很标准

您的输入文件不是正确的YAML,因为第一行包含标量
——#Names
,后面不能跟在同一缩进级别上的映射

如果要将第一行作为注释文件分隔符,请使用:

--- # Names
    lastNames:
     Daghistani: White
     Terry: White
     Poksay: White
     Williams: White
     Wade: Black
在YAML中,注释需要在
#
之后留一个空格,并且需要将文档开始标记(
--
)与注释分开(官方文档中的示例如下)

如果打算将
--#Names
作为标量,则不能将其与映射并置。或者将其本身设置为映射键(请注意第一行的出齿和额外冒号):

或者将两个并列的项目列为一个列表:

   - ---#Names
   - lastNames:
     Daghistani: White
     Terry: White
     Poksay: White
     Williams: White
     Wade: Black

请不要使用分隔符,或将其删除:

#Names
lastNames:
 Daghistani: White
 Terry: White
 Poksay: White
 Williams: White
 Wade: Black
   - ---#Names
   - lastNames:
     Daghistani: White
     Terry: White
     Poksay: White
     Williams: White
     Wade: Black
#Names
lastNames:
 Daghistani: White
 Terry: White
 Poksay: White
 Williams: White
 Wade: Black