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

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

解碼 json 包括 json 編碼的字符串

解碼 json 包括 json 編碼的字符串

Go
人到中年有點甜 2021-12-13 18:20:07
嘿伙計們,我從外部 Api 獲取 websocket 信息,它以這種方式給我 json 響應(yīng): `{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"channel\",\"name\":\"name\",\"nameColor\":\"B5B11E\",\"text\":\"<a href=\\\"https://play.spotify.com/browse\\\" target=\\\"_blank\\\">https://play.spotify.com/browse</a>\",\"time\":1455397119}}"]}`我把它放到這個結(jié)構(gòu)中type main struct {Name string `json:"name"`Args []arg  `json:"args"`}type arg struct {    Method string`json:"method"`    Params par `json:"params"`}type par struct {    Channel     string `json:"channel,omitempty"`    Name        string `json:"name,omitempty"`    NameColor   string `json:"nameColor,omitempty"`    Text        string `json:"text,omitempty"`    Time        int64  `json:"time,omitempty"`}并用代碼解碼sReplace := strings.NewReplacer(`"{`, "{", `"]`, "]", "\\", ``)strN := sReplace.Replace(str)r := strings.NewReader(strN)d := json.NewDecoder(r)m := main{}我收到錯誤invalid character 'h' after object key:value pair我知道錯誤是文本字段值的結(jié)果。有什么好的方法可以清理它或告訴解碼器忽略文本字段的內(nèi)容嗎?
查看完整描述

1 回答

?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗 獲得超6個贊

應(yīng)用程序正在解析包含子字符串的數(shù)據(jù)"text":"<a href="https。這不是有效的 JSON。錯誤消息是抱怨hin href。


由于 JSON 值包括編碼的 JSON 值,因此應(yīng)用程序必須分兩步進(jìn)行解碼:


type main struct {

  Name string   `json:"name"`

  Args []string `json:"args"`

}


type arg struct {

  Method string `json:"method"`

  Params par    `json:"params"`

}

type par struct {

  Channel   string `json:"channel,omitempty"`

  Name      string `json:"name,omitempty"`

  NameColor string `json:"nameColor,omitempty"`

  Text      string `json:"text,omitempty"`

  Time      int64  `json:"time,omitempty"`

}


str := `{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"channel\",\"name\":\"name\",\"nameColor\":\"B5B11E\",\"text\":\"<a href=\\\"https://play.spotify.com/browse\\\" target=\\\"_blank\\\">https://play.spotify.com/browse</a>\",\"time\":1455397119}}"]}`

var m main

if err := json.Unmarshal([]byte(str), &m); err != nil {

    log.Fatal(err)

}

var args arg

if err := json.Unmarshal([]byte(m.Args[0]), &args); err != nil {

    log.Fatal(err)

}


查看完整回答
反對 回復(fù) 2021-12-13
  • 1 回答
  • 0 關(guān)注
  • 253 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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