type ContentStruct struct {

    Logs []struct{

        Points [][]int64 `json:"points"`

        TagsMetric struct {

            Name string `json:"name"`

        } `json:"tags.metric"`

    } `json:"logs"`

}

unknown, err := ioutil.ReadAll(r.Body)

if err != nil {

    log.Println(err)

    return

}

fmt.Println(string(unknown))

请注意,您的处理程序会终止程序,无论您是否因解码 json 而收到错误。您不应该在每种情况下都调用,只有当值不是时,甚至可能不是这样,也许您应该退出处理程序,但这由您决定。log.Fatalerrnil


func postHandle(w http.ResponseWriter, r *http.Request) {

    var contentStruct ContentStruct

    if err := json.NewDecoder(r.Body).Decode(&contentStruct); err != nil {

        log.Fatal(err)

    }

    if len(contentStruct.Logs) > 0 {

        fmt.Println(contentStruct.Logs[0].TagsMetric)

    }

}