【问题标题】:Convert a string to an array in Go [duplicate]在 Go 中将字符串转换为数组 [重复]
【发布时间】:2021-08-29 23:27:00
【问题描述】:

所以在 Go 中我有以下字符串

["item1", "item2", "item3"]

我想把这个字符串变成一个包含每个项目的列表。解决此问题的最佳方法是什么?抱歉,我还在学习 Go,但找不到类似的信息

【问题讨论】:

  • 字符串是Json,字符串是json项的数组,我想把它变成一个字符串到接口的go映射。

标签: arrays string go type-conversion


【解决方案1】:

如果您的字符串是 JSON(如 cmets 建议的那样),具有相同类型对象的顶级列表;您可以使用标准库中的encoding/json 来解析并简单地将其解组为您的 Go 结构类型的切片,如下所示:

package main

import (
    "encoding/json"
    "fmt"
)

type Data struct {
    Name string
    Foo []string `json:"foo"`
}

func main() {
    // Unmarshall to slice
    var data []Data

    // Your string with list of objects
    input := `[{"name": "first", "foo":["item1", "item2", "item3"]}, {"name": "second", "foo":["item5", "item6"]}]`
    
    err := json.Unmarshal([]byte(input), &data)
    if err != nil {
        panic(err)
    }
    fmt.Println(data)
}

我推荐阅读JSON and Go,它几乎解释了如何在 Go 中阅读 JSON。

【讨论】:

  • 对不起,我解释得不够,它是一个字符串,是一个 json 数组。所以一个例子是 "[{"object1" : data}, {"object2" : data} ]"
  • 我明白了,我更新了我的答案。你真的应该重新措辞这个问题,以便它反映这一点。
猜你喜欢
  • 2017-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 1970-01-01
  • 2017-05-20
  • 2021-08-20
相关资源
最近更新 更多