如何在golang中将字符串转换为json?

如何在golang中将字符串转换为json?,json,string,go,Json,String,Go,我想将字符串转换为Json并给它一个返回值 通过POST请求(writePost)接收的c.JSON(200,字符串(正文))值为: “{\'message\':{\'type\':\'response\',\'service\':\'service.community.cafe\',\'version\':'1.0.0\','status\':'200\','result\':{\'msg\':'Success\','url\'aaabcd\','articleId\':211,'articl

我想将字符串转换为Json并给它一个返回值

通过POST请求(writePost)接收的
c.JSON(200,字符串(正文))
值为:

“{\'message\':{\'type\':\'response\',\'service\':\'service.community.cafe\',\'version\':'1.0.0\','status\':'200\','result\':{\'msg\':'Success\','url\'aaabcd\','articleId\':211,'articleUrl\':'

//WriteResult结构
类型WriteResult结构{
Message int`form:“msg”json:“msg”`
URL字符串`form:“URL”json:“URL”`
ArticleID int`form:“ArticleID”json:“ArticleID”`
ArticleURL字符串`form:“ArticleURL”json:“ArticleURL”`
}
func writePost(c*gin.Context){
var writeInfo writeInfo
如果错误:=c.ShouldBind(&writeInfo);错误!=nil{
fmt.Println(“错误:”,错误)
}
url:=”https://openapi.abcde.com/articles"
var bearer=“bearer”+writeInfo.AccessToken
var bufs bytes.Buffer
形式:=url.Values{}
表格.添加(“主题”,主题)
表格。添加(“内容”,内容)
req,err:=http.NewRequest(“POST”,url,strings.NewReader(form.Encode()))
请求标题添加(“授权”,无记名)
请求标题添加(“内容类型”、“应用程序/x-www-form-urlencoded”)
客户端:=&http.client{}
resp,err:=client.Do(请求)
如果错误!=零{
恐慌(错误)
}
延迟响应主体关闭()
writeResult:=新建(writeResult)
正文,Util:=ioutil.ReadAll(分别为正文)
c、 JSON(200,字符串(正文))
}
有没有办法转换成Json并返回它


谢谢你的建议。

围棋很简单

out, _ := json.Marshal(body)

请参阅答案。

围棋非常简单

out, _ := json.Marshal(body)

请参阅答案。

谢谢。但是,结果值为:"IMV5SNRAW5WVDKBELQCDDJA0IWZVCBELQB2LJBVZ6Y0C5DWMYVWLMQ0PBYZJWEWRTBGPAU0K2SW10DMNTVMHMBTVOZG1WEYOXLAV0Z6WLHKMMFXTMBU52YLCXMWJTBLUZVQVDABELPD2LRPSY25分包4GPBDU1NJJBK4WWWNWWWWWWWWWWWWWNWN5STZJAKYL3TUNJ0L3JJJ0MJZ1Z1ZJ1ZJJ1Z1ZWWWWWWNWWWW5DMV5DWNJJJJJ5W5DWNJ5W5W5STJJJJJJJJJJ5W5W5W5W5W5W5W5SNMB5W5W5SNMB5W5W5W5W5W5W5W5EhSd2N6b3ZMMk5oWm1VdWJtRjJaWEl1WTI5dEwzQnNZWGxyWVc1bkx6SXlNeUo5ZlgwPSI=“这是我两次解码时看到的:{“消息”:{“类型”:“响应”,“服务”:“korea.naverkoreaservice.community.cafe”,“版本”:“1.0.0”,“状态”:“200”,“结果”:{“msg”:“成功”,“cafeul”:“playkang”,“articleId”:223,“articleUrl”:}}我不知道如何使用它。您的回答对我帮助很大。非常感谢。谢谢。但是,结果值为:”IMV5SNRAW5WVDKBELQCDDJA0IWZVCBELQB2LJBVZ6Y0C5DWMYVWLMQ0PBYZJWEWRTBGPAU0K2SW10DMNTVMHMBTVOZG1WEYOXLAV0Z6WLHKMMFXTMBU52YLCXMWJTBLUZVQVDABELPD2LRPSY25分包4GPBDU1NJJBK4WWWNWWWWWWWWWWWWWNWN5STZJAKYL3TUNJ0L3JJJ0MJZ1Z1ZJ1ZJJ1Z1ZWWWWWWNWWWW5DMV5DWNJJJJJ5W5DWNJ5W5W5STJJJJJJJJJJ5W5W5W5W5W5W5W5SNMB5W5W5SNMB5W5W5W5W5W5W5W5EhSd2N6b3ZMMk5oWm1VdWJtRjJaWEl1WTI5dEwzQnNZWGxyWVc1bkx6SXlNeUo5ZlgwPSI=“这是我两次解码时看到的:{“消息”:{“类型”:“响应”,“服务”:“korea.naverkoreaservice.community.cafe”,“版本”:“1.0.0”,“状态”:“200”,“结果”:{“msg”:“成功”,“cafeul”:“playkang”,“articleId”:223,“articleUrl”:}}我不知道如何使用它。你的回答帮了我很大的忙。非常感谢。你的问题不清楚。你是说你的字符串,
body
,已经是JSON了,你想把它作为JSON提供给客户端吗?@Flimzy我已经有了JSON,但我不明白。我现在已经解决了。谢谢你的关注。如果你不知道的话理解它,你怎么知道你是否解决了它?根据你的问题,我认为我接受的答案是错误的。我想你还没有真正解决它。@Flimzy我从下面的答案中得到了这个方法。“”var raw map[string]interface{}json.Unmarshal(body,&raw)''我使用了这段代码。是的,这是不正确的。这只是对已经编码的字符串进行双重编码。这会使代码执行,但不会正常运行。这就是为什么真正理解您正在做的事情很重要。''从stackoverflow复制并粘贴“被嘲笑是有原因的。你的问题不清楚。你是说你的字符串,
body
,已经是JSON了,你想把它作为JSON提供给客户端吗?@Flimzy我已经有了JSON,但我不明白。我现在已经解决了。谢谢你的关注。如果你不理解它,你怎么知道你是否解决了它?根据你的问题,我认为被接受的答案是错误的。我想你还没有真正解决它。@Flimzy我从下面的答案中得到了这个方法var raw map[string]接口{}json.Unmarshal(body,&raw)''我使用了这段代码。是的,这不正确。这只是对已经编码的字符串进行双重编码。这将使您的代码执行,但不会正常运行。这就是为什么真正了解你在做什么很重要。“从stackoverflow复制和粘贴”被模拟是有原因的。