【问题标题】:Unmarshal JSON into map将 JSON 解组到地图中
【发布时间】:2024-04-22 12:55:01
【问题描述】:

我有一个非常简单的 JSON 文件,类似这样,但包含数千个字符串:

{"fruits":["apple","banana","cherry","date"]}

我想把水果装进一个

map[string]interface{}

最好的方法是什么?有没有一种方法不需要遍历每个元素并使用循环插入到地图中?

【问题讨论】:

  • 尝试实现一些代码,并询问有关代码的具体问题。社区可以更好地解决您在这方面的问题。
  • 你可以看到下面的链接,它对我有帮助:*.com/questions/443499/convert-json-to-map
  • 谢谢 Victor,我正在 Go 中寻找类似的东西。使用“通常的”解组示例,我可以获得一张地图,但它将包含整个水果的一部分,并且在将它们添加到新地图时我仍然需要对其进行迭代 - 如果我很好地理解了 go 示例。跨度>
  • 您好,您可以创建一个字符串列表:play.golang.org/p/qDc3kn1JjE
  • 谢谢!如果它只包含一个切片,我是否需要为此定义一个结构?

标签: json dictionary go


【解决方案1】:

这里是一个例子,你可以在没有任何结构的情况下解组到字符串列表。

package main

import "fmt"
import "encoding/json"

func main() {
    src_json := []byte(`{"fruits":["apple","banana","cherry","date"]}`)
    var m map[string][]string
    err := json.Unmarshal(src_json, &m)
    if err != nil {
        panic(err)
    }
    fmt.Printf("%v", m["fruits"][0]) //apple
 }

或者你可以使用字符串列表来代替 map[string][]interface{}

【讨论】: