[Go]當把json解析到interface{}時 , 對應的真正類型


如果解析json時 , 把json解析到map[string]interface  , 那值所對應的真正類型是下面這樣的

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null

 

json中的數值類型 , 會是float64類型 

json對象會解析成 , map[string]interface

 

代碼可以這樣寫:

func send(w http.ResponseWriter, r *http.Request){
    w.Header().Set("content-type", "text/json;charset=utf-8;")
    var sendData map[string]interface{}
    bodyBytes,err:=ioutil.ReadAll(r.Body)
    if err!=nil{
        msg, _ := json.Marshal(tools.JsonResult{Code: 400, Msg: "操作失敗,"+err.Error()})
        w.Write(msg)
        return
    }

    err = json.Unmarshal(bodyBytes, &sendData)
    if err!=nil{
        msg, _ := json.Marshal(tools.JsonResult{Code: 400, Msg: "操作失敗,"+err.Error()})
        w.Write(msg)
        return
    }

    smtpServer:=sendData["smtp"].(string)
    smtpFrom:=sendData["from"].(string)
    msg, _ := json.Marshal(tools.JsonResult{Code: 200, Msg: smtpServer+smtpFrom})
    w.Write(msg)
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM