英文:
Cast String to Array
问题
我正在尝试将一个类似于
[{"a":"b"}, {"a":"d"}]
的字符串转换为数组/切片。
有没有办法将字符串转换为数组?
解决方案:
我的目标是从提供的 JSON 中获得一个结构体数组。但是在我的代码中,我做错了一些事情,导致了这个问题。找到了解决方法。
英文:
I am trying to convert a string which is like
[{"a":"b"}, {"a":"d"}]
to a Array/slice.
Is there any way to cast string to a Array?
Solution:
My goal was to have a array of struct from provided json. But in my code i was doing something wrong, which result into this. Got the solution.
答案1
得分: 2
由于您的示例是JSON格式的,您可以轻松地进行输入转换:
const input = `[{"a":"b"}, {"a":"d"}]`
type arrayValue struct {
A string `json:"a"`
}
func main() {
// 将JSON解析为[]arrayValue
var arr []arrayValue
if err := json.Unmarshal([]byte(input), &arr); err != nil {
panic(err)
}
// 将[]arrayValue转换为[]string
var strArr = make([]string, len(arr))
for i, val := range arr {
strArr[i] = val.A
}
fmt.Println(strArr) // [b d]
}
试一试:https://play.golang.org/p/KMsx1OaisGl
英文:
Since your example is JSON, you can easily convert the input:
const input = `[{"a":"b"}, {"a":"d"}]`
type arrayValue struct {
A string `json:"a"`
}
func main() {
// parse JSON to []arrayValue
var arr []arrayValue
if err := json.Unmarshal([]byte(input), &arr); err != nil {
panic(err)
}
// convert []arrayValue to []string
var strArr = make ([]string, len(arr))
for i, val := range arr {
strArr[i] = val.A
}
fmt.Println(strArr) // [b d]
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论