第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

根據(jù)參數(shù)值在 Golang 中解碼傳入的 JSON

根據(jù)參數(shù)值在 Golang 中解碼傳入的 JSON

Go
慕勒3428872 2021-09-10 15:20:09
我正在嘗試在我用 Go 編寫的 REST API 中解碼傳入的 JSON。我正在使用decoder.Decode()函數(shù),我的問題是我需要對解碼過程中應(yīng)該使用哪個結(jié)構(gòu)應(yīng)用某些規(guī)則,因?yàn)橛袝r JSON 包含:"type": {    "type" : "string",    "maxLength" : 30},而有時:"type": {    "type" : "integer",    "max" : 30,    "min" : 10},我不知何故需要告訴 Go“如果 type.type 是字符串,則使用這個結(jié)構(gòu)(type Type_String struct),如果 type.type 是整數(shù),使用其他結(jié)構(gòu)(type Type_Integer struct)”。我真的不知道該怎么做。我想到的一個解決方案是創(chuàng)建一個具有所有可能屬性的通用結(jié)構(gòu),在任何類型的對象上使用它,然后根據(jù)該type屬性過濾屬性,但這太臟了。我想我也可以編寫自己的解碼器,但這似乎也有點(diǎn)奇怪。我是 Go 的新手,我非常習(xí)慣 JavaScript 提供的自由。
查看完整描述

2 回答

?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個贊

首先,如果“type”的字段取決于“type.type”,在我看來,最好將其向上移動一級。就像是:


...

"type" : "integer",

"intOptions": {

    "max" : 30,

    "min" : 10

},

....

然后你可以創(chuàng)建一個只有一個字段的結(jié)構(gòu):


type Type struct {

    Type string

}

并執(zhí)行以下操作:


myType := new(Type)

json.Unmarshal([]byte(yourJsonString), myType)

現(xiàn)在,根據(jù) myType 的值,您可以使用不同的結(jié)構(gòu)來解碼您的 json。


查看完整回答
反對 回復(fù) 2021-09-10
  • 2 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號