将 JSON 值展平为键

问题描述

我尝试转换以下形式的 JSON:

run()

...进入:

{
  "name" : "John","value" : [ "age" : "25"]
}

但是我找不到办法做到这一点。有什么建议吗?

解决方法

一种解决方案可能如下所示:

parsed := map[string]interface{}{}
_ = json.Unmarshal([]byte(unparsed),&parsed)
data,_ := json.Marshal(map[string]interface{}{
    parsed["name"].(string): parsed["value"],})

查看此 Playground 以查看代码工作:https://play.golang.org/p/1JFxBE6dFzp

,

如果你想要年龄数组,那么使用

{
  "name": "John","value": [
    {
      "age": "25"
    }
  ]
}

else 使用(更合乎逻辑)

{
  "name": "John","value": {
    "age": "25"
  }
}