繁体   English   中英

马歇尔MAP到JSON

[英]Marshall MAP to JSON

我正在开始从Python转到GoLang的过程中,而且我正在设法弄清数据类型。 我需要将地图编组到以下JSON,但我不确定如何构造地图。

这是我尝试过的方法,但对我不起作用。

data := map[string]string{"Offset": "0", "Properties": map[string]string{"key": "Type", "value": "User"}, "Category": "all", "Locations": map[string]string{}, "Accounts": "100" }
data_json, _ := json.Marshal(data)
fmt.Println(string(data_json))

预期结果:

{
"Locations": [],
"Dates": [],
"Properties": [
  {
    "key": "Type",
    "value": "User"
  }
 ],
 "Category": "all",
 "Accounts": [],
 "Offset": 0,
 "Limit": 100
}

问题是您声称要写一个字符串到字符串的映射(key是一个字符串,value是一个字符串)。 但是您具有键/值对: "Properties": map[string]string{"key": "Type", "value": "User"} ,并且该值不是字符串,而是另一个映射。 如果将数据定义为字符串到接口的映射,则它应该可以工作。 看起来更像这样:

data := map[string]interface{}{"Offset": "0", "Properties": map[string]string{"key": "Type", "value": "User"}, "Category": "all", "Locations": map[string]string{}, "Accounts": "100" }

这是一个工作示例: http : //play.golang.org/p/HjHH463J_r

如果您不确定什么是接口以及它们为什么起作用,那么文档将对它进行很好的解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM