さて、あなたが私に話したことと、私があなたの例を持っている情報が少ない場合、私はこのようなことをするかもしれません。私はまた、あなたの構造体に割り当てるバイト配列としてファイルを開く問題が発生した可能性がありますコメントに輝い何から今
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
type S3 struct {
Accesskeyid string
Secretaccesskey string
Bucket string
}
type Test struct {
Outputformat string
Wait string
Output S3
File []byte
}
func main() {
myStrut := Test{
Outputformat: "Json",
Wait: "Some Time",
Output: S3{
Accesskeyid: "my id",
Secretaccesskey: "secret id",
Bucket: "east",
},
File: []byte(`some bytes`),
}
jsonValue, err := json.Marshal(myStrut)
if err != nil {
panic(err)
}
fmt.Printf("Test showing that data was marshalled\n %q\n", jsonValue)
resp, err := http.Post("some url", "application/json", bytes.NewBuffer(jsonValue))
if err != nil {
panic(err)
}
fmt.Println(resp.Status)
}
。ここでは、ファイルをバイト配列として開いて、それらのバイトを構造体に割り当てることができるようにする例を示します。
package main
import (
"fmt"
"io/ioutil"
)
func main() {
//An example of how to open a file and turn it into bytes for your struct
byteArray, err := ioutil.ReadFile("input.txt")
if err != nil {
panic(err)
}
fmt.Println(byteArray)
}
もう少し具体的になることはできますか?あなたのコードを見れば、構造体には何も間違いはありません。出力はS3型なので、既にネストされたオブジェクトを作成しています。そして、ファイルがバイト配列に変換されている場合、Fileフィールドはそれを受け入れるのに問題ありません。だから私はあなたが問題、エラーメッセージなどの詳細を与えることができると思います。 – reticentroot
@reticentrootええ、私のstrucsは正しいですが、私はそれらを使用するのですか?どのように私はそれらをPOST要求に送ることができますか? –
このスタックをチェックし、受け入れられた答えはhttp://stackoverflow.com/questions/24455147/how-do-i-send-a-json-string-in-a-post-request-in-go投稿を作成するには、jsonパッケージを使用してデータをマーシャリングする必要があります。 – reticentroot