dongliang1996 2019-09-13 23:48
浏览 1607
已采纳

如何在JSON序列化中添加方括号?

I am trying to send a post request to a API endpoint. The endpoint does not work without brackets in the JSON data.

map1: = map[string] map[string] interface {} {}
map2: = map[string] interface {} {}
map2["firstObject"] = "value1"
map2["secondObject"] = "value2"

map1["jsonName"] = map2
b, err: = json.Marshal(map1)
if err != nil {
    panic(err)
}

fmt.Println(string(b)) // outputs: {"jsonName":{"firstObject":"value1","secondObject":"value2"}}

I need the output to be: {"jsonName":[{"firstObject":"value1","secondObject":"value2"}]}

However, I am getting this: {"jsonName":{"firstObject":"value1","secondObject":"value2"}}

  • 写回答

1条回答 默认 最新

  • dongye1912 2019-09-14 00:06
    关注

    Your indicated payload is passing a map as the value of jsonName, when the API needs an array of maps.

    It may help if you create the inner map first:

    map2 := map[string]interface{}{
        "firstObject":  "value1",
        "secondObject": "value2",
    }
    

    Then create your outer map as a map of string => []interface{}, giving your key and value:

    map1 := map[string][]interface{}{
        "jsonName": []interface{}{map2},
    }
    

    You can do it all in one shot as:

    map1 := map[string][]interface{}{
        "jsonName": []interface{}{
            map[string]interface{}{
                "firstObject":  "value1",
                "secondObject": "value2",
            },
        },
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同