如何在Go Lang中使用多个元素编码JSON

时间:2017-07-03 17:04:22

标签: json go

我需要咨询或示例代码,以便我可以向客户发送JSON中的多个元素。谢谢!

我需要下一个JSON结构:

{{"id":123,"first_name":"Demo","last_name":"User","time":"2017-07-03T16:36:41.4101847Z","count":1,"payout":"839`"},{"id":124,"first_name":"Demo","last_name":"User1","time":"2017-07-03T16:36:41.4101847Z","count":1,"payout":"839`"},{"id":125,"first_name":"Demo","last_name":"User2","time":"2017-07-03T16:36:41.4101847Z","count":1,"payout":"839`"}}

1 个答案:

答案 0 :(得分:1)

你在这里。

package main

import (
    "bytes"
    "encoding/json"
    "io"
    "log"
    "net/http"
    "os"
    "time"
)

type Elememt struct {
    ID int `json:"id"`
    FirstName string `json:"first_name"`
    LastName string `json:"last_name"`
    Time time.Time `json:"time"`
    Count int `json:"count"`
    Payout string `json:"payout"`
}

func main() {
    elements := []Elememt {
        {
            ID: 1,
            FirstName: "Dmitriy",
            LastName: "Groschovskiy",
            Time: time.Now(),
            Count: 1,
            Payout: "200",
        },
        {
            ID: 2,
            FirstName: "Yasuhiro",
            LastName: "Matsumoto",
            Time: time.Now(),
            Count: 2,
            Payout: "150",
        },
    }

    var buf bytes.Buffer
    err := json.NewEncoder(&buf).Encode(elements)
    if err != nil {
        log.Fatal(err)
    }
    req, err := http.NewRequest("POST", "http://httpbin.org/post", &buf)
    if err != nil {
        log.Fatal(err)
    }
    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()

    io.Copy(os.Stdout, resp.Body)
}