Golang:JSON格式的字节切片

时间:2016-10-17 04:40:16

标签: go

我是Go的新手。目前我有两个看起来像这样的数组:

words: ["apple", "banana", "peach"]
freq: [2, 3, 1]

其中" freq"将每个单词的计数存储在"单词"中。我希望将两个数组组合成一个看起来像

的Json格式的字节片
[{"w":"apple","c":2},{"w":"banana","c":3},{"w":"peach","c":1}]

我如何实现这一目标?

目前我已经宣布了一个结构

type Entry struct {
  w string
  c int
}

当我遍历两个数组时,我做了

  res := make([]byte, len(words))
  for i:=0;i<len(words);i++ {
     obj := Entry{
       w: words[i], 
       c: freq[i],
     }
     b, err := json.Marshal(obj)
     if err==nil {
        res = append(res, b...)
     }
  }

  return res // {}{}{}

它没有给我想要的结果。任何帮助表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:3)

json.Marshal需要导出结构字段。

你可以使用json标签让json带有小写字母键。

type Entry struct {
  W string `json:"w"`
  C int `json:"c"`
}

使用[] Entry生成输出json会更容易。 Sample code