【问题标题】:Is it possible to add a key-value pair to a map of unknown type in Go?是否可以在 Go 中将键值对添加到未知类型的映射中?
【发布时间】:2021-05-20 02:17:28
【问题描述】:

我有多个不同格式的 JSON 文件。它们都由一个包含地图的数组组成。然而,这些地图具有不同的结构。

a.json

[
   {
       "a": "b", 
       "c": ["d", "e"] 
   } 
]

b.json

[
   {
       "f": ["g", "h"], 
       "i": {"j": "k"} 
   } 
]

内部映射的 Thr 结构无关紧要。我只想为它们添加一个新的键值对,所以它们看起来像这样 一个.json

[
   {
       "new_key": "new_value", 
       "a": "b", 
       "c": ["d", "e"] 
   } 
]

b.json

[
   {
       "new_key": "new_value",
       "f": ["g", "h"], 
       "i": {"j": "k"} 
   } 
]

【问题讨论】:

    标签: json go generics reflect


    【解决方案1】:

    你可以使用一片地图:

    var data []map[string]interface{}
    

    你可以解组:

    json.Unmarshal(jsonData,&data)
    

    然后添加键:

    for i:=range data {
       data[i]["new_key"]="newValue"
    }
    

    当然,您必须进行必要的错误检查,并确保data[i] 不为零。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-22
      • 2011-11-30
      • 2023-04-10
      • 2011-12-10
      • 1970-01-01
      相关资源
      最近更新 更多