json - 解码具有未知结构的 JSON

标签 json go

我想得到一个代表这样一个 json 的字符串:

{ "votes": { "option_A": "3" } }

并在其中包含一个“计数”键,因此它的结尾如下:

{ "votes": { "option_A": "3" }, "count": "1" }

这就是为什么我打算将它转换为 json 以便我可以添加计数然后 再次使它成为一个字符串。 问题是我不知道它的结构 JSON,所以我不能使用 json.Unmarshal(in, &myStruct) 因为那个结构 变化。我该怎么做?

最佳答案

package main

import "encoding/json"

func main() {
    in := []byte(`{ "votes": { "option_A": "3" } }`)
    var raw map[string]interface{}
    if err := json.Unmarshal(in, &raw); err != nil {
        panic(err)
    }
    raw["count"] = 1
    out, err := json.Marshal(raw)
    if err != nil {
        panic(err)
    }
    println(string(out))
}

https://play.golang.org/p/o8ZwvgsQmoO

关于json - 解码具有未知结构的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40429296/

相关文章:

performance - 使用int64而不是int32时,for循环性能要慢得多

json - 获取Go json unmarshal中出错的字段名

c# - Json.NET 使用根名称序列化对象

ios - 如何将 JSON 中返回的图像 URL 显示为 UITableViewCell 的缩略图

unit-testing - 单元测试不同的标志值

go - 如何从父目录运行兄弟 Go 应用程序(模块)

android - map View 使用 google Directions API 绘制方向 - 解码多段线

json - manifest.json 上的多个匹配项

go - Golang 1.8 并发映射迭代和映射写入错误

json - 将GoLang中的JSON解析成struct