tft每日頭條

 > 科技

 > jsonarray叠代

jsonarray叠代

科技 更新时间:2025-02-03 13:00:19

jsonarray叠代?func HandleUse(w http.ResponseWriter, r *http.Request) { var u Use //此處的Use是一個結構體 data, err := ioutil.ReadAll(r.Body)//此處的r是http請求得到的json格式數據-->然後轉化為[]byte格式數據. if err != nil { w.WriteHeader(http.StatusBadRequest) return } if err := json.Unmarshal(data, &u); err != nil { //經過這一步将json解碼賦值給結構體,由json轉化為結構體數據 w.WriteHeader(http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "姓名:%s,年齡:%d", u.Name, u.Age) },我來為大家科普一下關于jsonarray叠代?下面希望有你要的答案,我們一起來看看吧!

jsonarray叠代(json數據解碼的兩種方法NewDecoder與Unmarshal)1

jsonarray叠代

一、golang中處理http響應數據解碼,一般有兩種方式:1:json.Unmarshal進行解碼

func HandleUse(w http.ResponseWriter, r *http.Request) { var u Use //此處的Use是一個結構體 data, err := ioutil.ReadAll(r.Body)//此處的r是http請求得到的json格式數據-->然後轉化為[]byte格式數據. if err != nil { w.WriteHeader(http.StatusBadRequest) return } if err := json.Unmarshal(data, &u); err != nil { //經過這一步将json解碼賦值給結構體,由json轉化為結構體數據 w.WriteHeader(http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "姓名:%s,年齡:%d", u.Name, u.Age) }


2. json.NewDecoder解碼

func HandleUse(w http.ResponseWriter, r *http.Request) { var u Use if err := json.NewDecoder(r.Body).Decode(&u); err != nil { w.WriteHeader(http.StatusInternalServerError) return } w.WriteHeader(http.StatusOK) fmt.Fprintf(w, "姓名:%s,年齡:%d", u.Name, u.Age) }

二、區别:

1、json.NewDecoder是從一個流裡面直接進行解碼,代碼精幹;2、json.Unmarshal是從已存在與内存中的json進行解碼;3、相對于解碼,json.NewEncoder進行大JSON的編碼比json.marshal性能高,因為内部使用pool。

三、場景應用:

1、json.NewDecoder用于http連接與socket連接的讀取與寫入,或者文件讀取;2、json.Unmarshal用于直接是byte的輸入。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved