1 回答

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
使用 JSON 結(jié)構(gòu)標(biāo)記中的字符串選項(xiàng)。它正是為以下用例而設(shè)計(jì)的:
“字符串”選項(xiàng)表示字段以 JSON 格式存儲(chǔ)在 JSON 編碼字符串中。它僅適用于字符串、浮點(diǎn)、整數(shù)或布爾類型的字段。在與 JavaScript 程序通信時(shí),有時(shí)會(huì)使用這種額外的編碼級(jí)別
type Foo struct {
A int64 `json:"A,string"`
B uint64 `json:"B,string"`
}
func main() {
x := &Foo{}
_ = json.Unmarshal([]byte(`{"A":"12345678901234567", "B":"98765432101234567"}`), x)
fmt.Println(x) // &{12345678901234567 98765432101234567}
b, _ := json.Marshal(x)
fmt.Println(string(b)) // {"A":"12345678901234567","B":"98765432101234567"}
}
游樂(lè)場(chǎng): https://play.golang.org/p/IfpcYOlcKMo
如果您無(wú)法修改現(xiàn)有的結(jié)構(gòu)標(biāo)簽(但您的示例沒(méi)有),則必須在自定義和方法中重新發(fā)明此標(biāo)簽選項(xiàng)的實(shí)現(xiàn)。stringUnmarshalJSONMarshalJSON
- 1 回答
- 0 關(guān)注
- 190 瀏覽
添加回答
舉報(bào)