无法读取 json 正文

golang 很新,我正在尝试阅读 golang 中的 post json 请求正文,但它只是转换为空字符串。


下面是我试图通过请求 json 正文转换为的结构


type SdpPost struct {

    id string

    sdp string

}


func (s *SdpPost) Id() string {

    return s.id

}


func (s *SdpPost) SetSdp(sdp string) {

    s.sdp = sdp

}


func (s *SdpPost) Sdp() string {

    return s.sdp

}

当我尝试打印以下代码段时,我确实看到了我通过邮递员传递的 json 请求正文


Dumping the json POST /v1/sdp HTTP/1.1

Host: localhost:8080

Accept: */*

Accept-Encoding: gzip, deflate, br

Connection: keep-alive

Content-Length: 62

Content-Type: application/json

Postman-Token: 5f0f9961-f058-446a-86e8-7f047c1dc5cc

User-Agent: PostmanRuntime/7.24.1


{

        "sdp":"This is the test sdp",

        "id":"This is the test id"

}

但是下面的代码什么也没打印,它只是 Id 和 sdp 的空字符串


    r.Header.Set("Content-Type", "application/json")

    decoder := json.NewDecoder(r.Body)

    sdp := handler.SdpPost{}

    decoder.Decode(&sdp)

    w.WriteHeader(http.StatusOK)

    fmt.Print(sdp.Id())

    fmt.Println(sdp.Sdp())

有什么我在某处遗漏的吗?我从字面上搜索了每个地方,这几乎被使用了。


四季花海
浏览 121回答 1
1回答

翻过高山走不出你

问题是SdpPost字段未导出,因此 json 解码器看不到它们,您可以这样修复:type SdpPost struct {    Id string    Sdp string}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go