gpt4 book ai didi

json - Golang 语法错误

转载 作者:IT王子 更新时间:2023-10-29 01:39:08 25 4
gpt4 key购买 nike

我正在将 JSON 中的值编码到一个结构中。这是我的结构:

type AutoGenerated struct {
ID int64 `json:"id"`
SuccessHTTPResponseCode int `json:"success_http_response_code"`
MaxRetries int `json:"max_retries"`
CallbackWebhookURL string `json:"callback_webhook_url"`
Request struct {
URL string `json:"url"` (error occurs here)
Method string `json:"method"`
HTTPHeaders struct {
ContentType string `json:"content-Type"`
Accept string `json:"accept"`
} `json:"http_headers"`
Body struct {
Foo string `json:"foo"`
} `json:"body"`
} `json:"request"`
}

下面是我编码的函数:

func createBSON() []byte {
data1:= AutoGenerated{
ID: 1462406556741,
SuccessHTTPResponseCode: 200,
MaxRetries: 3,
CallbackWebhookURL: "http://requestb.in/vh61ztvh",
Request: {
URL: "http://requestb.in/vh61ztvh",
Method: "POST",
HTTPHeaders: {
ContentType: "Application/json",
Accept: "Application/json",
},
Body : {
Foo: "bar",
},
},

}
sample,err:=json.Marshal(data1)
check(err)
fmt.Print(sample)
return sample
}

我做了一些更改,上面是我更新的功能。我收到以下错误:

  missing type in composite literal

我是 Golang 的新手。我不知道这个错误是什么。任何帮助将不胜感激。

最佳答案

当你像这样使用匿名结构时:

type AutoGenerate struct {
Request: struct {
URL string
Method string
}
}

整个 block 就是类型名

struct {
URL string
Method string
}

换句话说,你必须这样开始

data := AutoGenerate{
Request: struct {
URL string
Method string
}{
URL: "http://somedomain.com/",
Method: "GET",
},
}

因此,在您的情况下,最好将每个结构分成一个命名结构:

type Request struct {
URL string
Method string
}

type AutoGenerate struct {
Request Request
}

请参阅https://play.golang.org/p/kZDN2yhlkz匿名结构会造成困惑。

关于json - Golang 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37222911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com