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

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

無法將字符串解析為 JSON

無法將字符串解析為 JSON

Go
蕭十郎 2022-08-01 18:57:54
我正在動態獲取字符串作為輸入,我需要訪問某些字段,因此我嘗試將其解析為JSON,但我的代碼不起作用。我需要能夠獲取某些字段的值,如輸入['school_id'],并且需要將輸入['school_details']的值隱藏到map[string]字符串中。這是我嘗試過的:func main() {    input := `{"school_capacity":2000,"school_id":"10","school_details":{"classes":"8","subjects":"5","teachers":"15"}}`    var raw map[string]string    json.Unmarshal([]byte(input), &raw)    print(raw["input"])}但是,這不起作用。為什么?
查看完整描述

4 回答

?
largeQ

TA貢獻2039條經驗 獲得超8個贊

   input := `{"school_capacity":2000,"school_id":"10","school_details":{"classes":"8","subjects":"5","teachers":"15"}}`


    var raw map[string]interface{}


    json.Unmarshal([]byte(input), &raw)


    fmt.Printf("%v", raw)


查看完整回答
反對 回復 2022-08-01
?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

您正在取消編組字符串到字符串的映射。您的數據具有一個整數字段、一個字符串字段和一個結構字段。因此,如果任何數據解析失敗,則會得到一個空字符串。此外,沒有您嘗試訪問的“輸入”字段。


使用固定結構封送和取消封送數據的最佳方法之一是使用結構標記:


type response struct {

    Page   int      `json:"page"`

    Fruits []string `json:"fruits"`

}

但您也可以使用映射到空接口:


var dat map[string]interface{}

示例源:https://gobyexample.com/json


查看完整回答
反對 回復 2022-08-01
?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

這成功了:https://repl.it/@ruoyanss/jsonParse


package main


import (

  "fmt"

  "encoding/json"

)


func main() {

  str := `{"school_capacity":2000,"school_id":"10","school_details":{"classes":"8","subjects":"5","teachers":"15"}}`


  var raw map[string]interface{}


  json.Unmarshal([]byte(str), &raw)


  fmt.Println(raw["school_capacity"])

}


查看完整回答
反對 回復 2022-08-01
?
慕無忌1623718

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

您應該使用 來存儲 JSON 對象。 不會處理數字、布爾或嵌套對象的元素。map[string]interface{}map[string]string


完成此操作后,您可以查看地圖的元素:


fmt.Print(raw["school_details"])

并且可以使用類型斷言將嵌套對象拉出,從而有效地將嵌套對象強制轉換為 :map[string]interface{}


if schoolDetails, ok := raw["school_details"].(map[string]interface{}); ok {

    fmt.Printf("%v\n", schoolDetails["classes"])

}

使用任意 JSON 對象有點混亂,因此您需要仔細步驟以確保結構符合您的期望。


查看完整回答
反對 回復 2022-08-01
  • 4 回答
  • 0 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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