代码之家  ›  专栏  ›  技术社区  ›  mslz

从groovy活动引用参数中的json列表返回子列表

  •  1
  • mslz  · 技术社区  · 3 年前

    我的active choices被动引用参数读取以下JSON文件

    {
    "Name": "Tom",
    "Age": "25",
    "Subjects": ["English", "Physics", "Chemistry", "Biology", "Maths"]
    }
    

    引用的参数是 file , Nos (以前的有功选择无功参数)是一个单选按钮,其值为1、2、3、4、5

    现在基于 网络操作系统 ,我必须展示主题。我就是这么做的:

    import groovy.json.JsonSlurper
    def jsonSlurper = new JsonSlurper()
    def config = jsonSlurper.parse(new File(file))
    return config.Subjects
    

    使用上述代码,输出为,

     1. English
     2. Physics
     3. Chemistry
     4. Biology
     5. Maths
    

    如果我想回来 config.Subjects.take(Nos) config.Subjects.subList(Nos) ,如果 Nos = 3 成为

    1. English
    2. Physics
    3. Chemistry
    

    但我什么也没看到。然后我试着,

    import groovy.json.JsonSlurper
    def jsonSlurper = new JsonSlurper()
    def config = jsonSlurper.parse(new File(file))
    list = []
    i = 0
    config.Subjects.each {
    while (i < Nos){
    list.add "$it".toString()
    i = i + 1
    }
    }
    return list
    

    但这一次,我明白了 1. English 总是,无论我选择哪个单选按钮。我哪里做错了?

    1 回复  |  直到 3 年前
        1
  •  1
  •   ZzzZZz    3 年前

    你的代码几乎是对的。你应该使用 take 把名单分为几部分。例如 take(2) 将返回前两个元素。所以不是回来 config.Subjects ,尝试返回 (config.Subjects).take(Nos)

    import groovy.json.JsonSlurper
    def jsonSlurper = new JsonSlurper()
    def config = jsonSlurper.parse(new File(file))
    return (config.Subjects).take(Nos)
    

    如果Nos是一个字符串,则将其转换为整数并按如下方式返回

    import groovy.json.JsonSlurper
    def jsonSlurper = new JsonSlurper()
    def config = jsonSlurper.parse(new File(file))
    return (config.Subjects).take(Nos.toInteger())