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

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

如何將消息值解封為映射[字符串][int]類型的 json 結構

如何將消息值解封為映射[字符串][int]類型的 json 結構

Go
阿晨1998 2022-10-04 16:20:49
做完后。閱讀所有關于一些API的主體,我得到:-[91 34 123 92 34 78 111 79 102 86 105 101 119 115 92 34 58 123 92 34 48 92 34 58 48 125 44 92 34 78 111 79 102 76 105 107 101 115 92 34 58 123 92 34 48 92 34 58 48 125 44 92 34 78 111 79 102 67 111 109 109 101 110 116 115 92 34 58 123 92 34 48 92 34 5848 125 44 92 34 78 111 79 102 83 104 97 114 101 115 92 34 58 123 92 34 48 92 34 58 48 125 125 34 44 34 123 125 34 93 10]現在我必須將其解封為類型為 =type ActUser struct {    NoOfViews    map[string]int `json:"NoOfViews,omitempty"`    NoOfLikes    map[string]int `json:"NoOfLikes,omitempty"`    NoOfComments map[string]int `json:"NoOfComments,omitempty"`    NoOfShares   map[string]int `json:"NoOfShares,omitempty"`}但當我這樣做時var try []ActUsererr = json.Unmarshal(bodyBytes, &try)我得到錯誤:=無法將字符串取消到類型模型的Go值中。行動用戶我嘗試轉換,但似乎沒有任何效果。
查看完整描述

1 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

您的示例 JSON 數據對應于 。[91 34 123 ...["{


這表明您收到的 JSON 可能無效 - 它是字符串數組,而不是對象數組??雌饋砟愕膶ο笤诰幗M時可能會被引用。


它可以解組為 ,而不是 。這幾乎可以肯定是不可取的,并且在對源數據進行編碼時是錯誤的。最好的方法是修復導致 JSON 對象被引用為字符串的錯誤。[]string[]ActUser


或者,如果您必須從有缺陷的 JSON 中提取數據,則可以:


var strs []string

if err := json.Unmarshal(bodyBytes, &strs); err != nil {

  log.Fatal(err)

}


if len(strs) == 0 {

  log.Fatal("missing ActUser object")

}


var user ActUser

if err := json.Unmarshal([]byte(strs[0]), &user); err != nil {

  log.Fatal(err)

}

另外,我建議使用 來顯示原始 JSON 數據以進行調試(比 ASCII 代碼列表容易得多)。fmt.Printf("%s\n", bodyBytes)


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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