【问题标题】:appending non slice to map of slices将非切片附加到切片映射
【发布时间】:2015-11-09 12:08:17
【问题描述】:

我当前的代码是这样的:

name := "John"
id := "1234"
c := make(map[string][]string)

c["d"] = make([]string, len(d))
c["l"] = make([]string, len(l))

copy(c["d"], d)
copy(c["l"], l)
c["test"] = name
c["id"] = id

假设 d & l 都是 [] 字符串。 Go 不允许我这样做。有没有办法让我能够实现这样的 JSON:

{ “姓名”:“约翰”, “id”:“1234”, “d”:[ 123, 456 ], “升”:[ 123, 456 ] }

【问题讨论】:

    标签: arrays dictionary go slice


    【解决方案1】:
    1. 您需要改用map[string]interface{}
    2. 您也不需要复制切片。

    map[string]interface{} 为例:

    name := "John"
    id := "1234"
    l, d := []string{"123", "456"}, []string{"789", "987"}
    c := map[string]interface{}{
        "d":    d,
        "l":    l,
        "test": name,
        "id":   id,
    }
    

    playground

    【讨论】:

    • 如果您事先知道数据结构将是什么,只需在这个答案中添加一点点,使用struct 结合encoding/json 包来处理会更好/更惯用在 Go 中使用 json
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 2017-08-11
    • 2013-12-10
    相关资源
    最近更新 更多