dongyong6428 2017-02-17 04:45
浏览 60

将JSON顶级数组解组为字符串到字符串的映射

I'm trying to unmarshal a JSON array of the following type:

[
{"abc's": "n;05881364"},
{"abcoulomb": "n;13658345"},
{"abcs": "n;05881364"}
]

into a map[string]string. This question Golang parse JSON array into data structure almost answered my problem, but mine is a truly map, not an array of maps. Unmarshaling into a []map[string]string worked but I now get a map of map[string]string, not a simple map of string as it should be

  • 写回答

2条回答 默认 最新

  • donglie9067 2017-02-17 14:07
    关注

    There is no way to do it directly with the json package; you have to do the conversion yourself. This is simple:

    package main
    
    import (
        "encoding/json"
        "fmt"
    )
    
    func main() {
        data := []byte(`
            [
            {"abc's": "n;05881364"},
            {"abcoulomb": "n;13658345"},
            {"abcs": "n;05881364"}
            ]
        `)
    
        var mapSlice []map[string]string
        if err := json.Unmarshal(data, &mapSlice); err != nil {
            panic(err)
        }
        resultingMap := map[string]string{}
        for _, m := range mapSlice {
            for k, v := range m {
                resultingMap[k] = v
            }
        }
        fmt.Println(resultingMap)
    }
    

    Output

    map[abc's:n;05881364 abcoulomb:n;13658345 abcs:n;05881364]
    
    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类