求指点,类型转换。

go123 · · 376 次点击 · 开始浏览    置顶
//需求:按照RequestBody key顺序排序. 格式化输出:[{content=测试模板文本内容,exType=txt,sort=1,type=text}], key和value用=号连接,值保持不变。用strings.Replace的做法是不严谨的。 package main import ( "fmt" ) type RequestBody struct { Content string `json:"content"` ExType string `json:"exType"` Sort int `json:"sort"` Type string `json:"type"` ContentType string `json:"contentType,omitempty"` } sourceData :=`[{"content":"测试模板文本内容","exType":"txt","sort":1,"type":"text"}]` func Convert(sourceData string ) string { var mapData []map[string]interface{} var allRequestBody string var keyList []string jsonRequestData,_ := json.Marshal(sourceData) if er := json.Unmarshal(jsonRequestData, &mapData); er != nil { fmt.Println("json.Unmarshal failed",er) return allRequestBody } for _, v := range mapData { var tmpData map[string]interface{} jsonbodyData,_ := json.Marshal(v) if er := json.Unmarshal(jsonbodyData, &tmpData); er != nil { fmt.Println("json.Unmarshal jsonBodyData failed" er) return allRequestBody } for data := range tmpData { keyList = append(keyList, data) } sort.Strings(keyList) for _,v := range keyList { resultList = append(resultList, fmt.Sprintf("%s=%s",v,fmt.Sprint(tmpData[v]))) } sort.Strings(resultList) //这里转不了map[string]interface{} return strings.Join(resultList, ",") } return "" }

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

376 次点击  
加入收藏 微博
5 回复  |  直到 2021-09-12 22:07:30
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传