英文:
golang, revel, How to parse post json?
问题
我在golang方面还比较新,但我正在努力学习。
我正在尝试通过POST请求将JSON发送到revel控制器,并在revel端解析它。
但是在获取结果时,我无法进行解组(Unmarshal)...我正在发送一个数组
json_encode(array("one","two","three"))
但是我找不到正确的方法来处理这样的数据。我不确定在发送之前是否需要生成JSON。
func (c KpiCtrl) GetData() revel.Result {
content, _ := ioutil.ReadAll(c.Request.Body)
...
return c.RenderJson(content)
}
返回的结果是
"WyJvbmUiLCJ0d28iLCJ0aHJlZSJd"
我尝试使用json.Unmarshal,但是它返回错误。在使用curl发送给revel控制器的POST数据方面,有什么最佳实践吗?
英文:
I'm rather new in golang, but I'm trying hard..
I'm trying to send json by post request to the revel controller, and parse it on the revel side.
But while getting the result I cannot Unmarshal it... I'm sending an array
json_encode(array("one","two","three"))
But I can't find the correct way to work with such a data. I'm not sure do I need to make json before sending it or not..
func (c KpiCtrl) GetData() revel.Result {
content, _ := ioutil.ReadAll(c.Request.Body)
...
return c.RenderJson(content)
}
returns
"WyJvbmUiLCJ0d28iLCJ0aHJlZSJd"
I tried to use json.Unmarshal but it returns errors.. What is the best practice to work with post data sent by curl to revel controller?
答案1
得分: 4
只需使用标准的json解码器:
var content []string
err := json.NewDecoder(c.Request.Body).Decode(&content)
if err != nil {
log.Fatal("JSON解码错误:", err)
}
defer c.Request.Body.Close()
fmt.Println(content)
英文:
Just use standart json Decoder:
var content []string
err := json.NewDecoder(c.Request.Body).Decode(&content)
if err != nil {
log.Fatal("JSON decode error: ", err)
}
defer c.Request.Body.Close()
fmt.Println(content)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论