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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何序列化 [string]reflect.Value 類型的映射?

如何序列化 [string]reflect.Value 類型的映射?

Go
搖曳的薔薇 2023-04-10 10:32:13
我一直在努力弄清楚如何讓它發(fā)揮作用,但我被困住了。我有一個(gè)看起來像這樣的對(duì)象:type PropSet map[string]*Proptype Prop struct {    val reflect.Value}我需要生成它包含的所有鍵值對(duì)的 JSON 表示。我一直在閱讀關(guān)于如何編組更多普通類型的 SO 帖子,但我一直無法弄清楚如何處理 reflect.Value 類型。我想我應(yīng)該能夠做這樣簡(jiǎn)單的事情:func (p Prop) MarshalJSON() ([]byte, error) {    return json.Marshal(p.val.Value().Interface())}...但它只是行不通。有什么建議么?附加說明:我沒有編寫數(shù)據(jù)結(jié)構(gòu),但我認(rèn)為它使用 reflect.Value 作為映射值的原因是我們期望的值可以是整數(shù)、浮點(diǎn)數(shù)、字符串等。所以這本質(zhì)上是需要對(duì)基本接口進(jìn)行某種類型推斷以找出返回結(jié)果。
查看完整描述

1 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

您快到了:reflect.Value它本身沒有Value接收方方法,也不需要接收方方法。將您的MarshalJSON實(shí)施更改為以下工作:


func (p Prop) MarshalJSON() ([]byte, error) {

    return json.Marshal(p.val.Interface())

}

.Value()(即從函數(shù)調(diào)用鏈中刪除)。


游樂場(chǎng)鏈接


(我不喜歡這里的使用reflect——依賴于反射的解決方案很少清晰易懂,但似乎你不能改變上游數(shù)據(jù)結(jié)構(gòu),除了選擇不使用它。)


查看完整回答
反對(duì) 回復(fù) 2023-04-10
  • 1 回答
  • 0 關(guān)注
  • 137 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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