json - Golang解析输出以读取键(地形输出)

标签 json go terraform marshalling unmarshalling

我一直在尝试为Terratest断言解析terraform输出

运行terratest的输出是

 result := `[{
    "id": "/addressPools/test-pool"
    "name" : "test-pool"
 }]`

请注意, id 名称字段后没有逗号(因此输出不是JSON)

到目前为止,这是我一直没有尝试的尝试,
    type BackendAddressPool struct {
        ID   string `json:"id"`
        Name string `json:"name"`
    }

    func main () {
        result := `[{
            "id": "/addressPools/test-pool"
            "name" : "test-pool"
        }]`

        var backendAddressPoolData []BackendAddressPool
        json.Unmarshal([]byte(result), &backendAddressPoolData)
        fmt.Println(backendAddressPoolData)
        // outputs -> []
    }

我想要读取输出值,例如backendAddressPoolData.Name和backendAddressPoolData.Id

如果在结果的id字段后添加逗号,则代码可以正常工作。

查看我完整的代码here

最佳答案

试试这个https://play.golang.org/p/pH8t2XXBF0W

func main() {
    result := `[{
            "id": "/addressPools/test-pool"
            "name" : "test-pool"
        }]`
    result = strings.ReplaceAll(result, "\n", "")
    result = strings.ReplaceAll(result, " ", "")
    result = strings.ReplaceAll(result, `""`, `","`)
    fmt.Println(result)
    var backendAddressPoolData []BackendAddressPool
    json.Unmarshal([]byte(result), &backendAddressPoolData)
    fmt.Println(backendAddressPoolData)
}

type BackendAddressPool struct {
    ID   string `json:"id"`
    Name string `json:"name"`
}

关于json - Golang解析输出以读取键(地形输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61070959/

相关文章:

javascript - 来自 php 的 Jquery 移动 json

Golang SSH 到思科无线 Controller 并运行命令

azure - 通过 terraform 创建 Azure 预算警报

Terraform - 根据条件创建或不创建资源

amazon-web-services - Terraform 已存在异常 : An alias with the name arn:aws:kms:XXXXX:XXXXXXXXX:alias/myalias already exists

android - 在 flutter 中解析来自 WordPress 自定义帖子类型的 JSON 数据

javascript - JSON 对象到列表框值

Python Pandas 嵌套 MongoDB

go - 为什么存储在接口(interface)中的值在 Golang 中不可寻址

loops - 在循环迭代器变量上使用 goroutines