亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang 切片到名稱值對的 json 數組

Golang 切片到名稱值對的 json 數組

Go
泛舟湖上清波郎朗 2022-08-24 16:17:59
我有以下結構的一部分。type ParamStruct struct {    Paramname  string    Paramvalue interface{}}該值可以是字符串的整型浮點數。我需要將如下所示的切片轉換為如下所示的 JSON 數組。[{name1 95} {name2 someStrValue} {name3 someOtherStrValue}][{ "name1": 1 },{ "name2": "someStrValue"},{ "name3": "someOtherStrValue"}]我嘗試使用默認函數進行封送處理,并得到如下所示的JSON輸出。[{"Paramname":"name1","Paramvalue":95},{"Paramname":"name2","Paramvalue":"someStrValue"},{"Paramname":"name3","Paramvalue":"someOtherStrValue"}]輸出 JSON 必須是名稱-值對,如上所示。關于如何以所需格式獲取 JSON 輸出的任何建議?下面是完整的代碼示例package mainimport (    "encoding/json"    "fmt")type ParamStruct struct {    Paramname  string    Paramvalue interface{}}func main() {    paramlist1 := make([]ParamStruct, 3)    paramlist1[0].Paramname = "name1"    paramlist1[0].Paramvalue = 95    paramlist1[1].Paramname = "name2"    paramlist1[1].Paramvalue = "someStrValue"    paramlist1[2].Paramname = "name3"    paramlist1[2].Paramvalue = "someOtherStrValue"    fmt.Println(paramlist1)    js, err := json.Marshal(paramlist1)    if err != nil {        fmt.Printf("Error: %s", err.Error())    } else {        fmt.Println(string(js))    }}
查看完整描述

1 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

你可以實現 json。封送拆器接口。

例如:

type ParamStruct struct {
    Paramname  string
    Paramvalue interface{}
}
func (ps ParamStruct) MarshalJSON() ([]byte, error) {
    return json.Marshal(map[string]interface{}{ps.Paramname: ps.Paramvalue})
}

https://play.golang.org/p/sUsR-FMZQmq



查看完整回答
反對 回復 2022-08-24
  • 1 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號