首页 > 解决方案 > Golang 将字符串化列表转换为切片

问题描述

我有一个工作流程,其中创建了一个列表并将其发送到 SQS 队列(因此​​必须转换为字符串),然后由 Go 函数拾取它。我需要解析以下字符串列表:

"['bucket___file1.csv___groupFile.csv___custom', 'bucket___file2.csv___groupFile.csv___modeler']"

变成这样的字符串切片:

[]string{'bucket___file1.csv___groupFile.csv___custom', 'bucket___file2.csv___groupFile.csv___modeler'}

所以我可以通过索引访问和解析它们。我该怎么做?

标签: go

解决方案


您可以将字符串转换为 json 并使用 json 解码器获取字符串数组

package main

import (
    "fmt"
    "encoding/json"
    "strings"
)

func main() {
    inputString := "['bucket___file1.csv___groupFile.csv___custom', 'bucket___file2.csv___groupFile.csv___modeler']"
    // convert string to json string

    jsonString := strings.ReplaceAll(inputString, "'", "\"")

    var expectedStringArray []string
    json.Unmarshal([]byte(jsonString), &expectedStringArray)

    fmt.Println(expectedStringArray)
}

这应该可以解决您的问题

请注意,当您有'一个数组字符串时,上述解决方案将失败。

对于一个可靠的解决方案您可以将正确的 JSON 推送到队列中,并且您可以跳过我上面提供的解决方案中的转换部分。


推荐阅读