【问题标题】:How I can encode JSON with multiple elements in Go Lang [closed]如何在 Go Lang 中使用多个元素对 JSON 进行编码 [关闭]
【发布时间】:2017-07-03 17:04:21
【问题描述】:

我需要咨询或示例代码如何以 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`"}}

【问题讨论】:

  • 那个 JSON 对象无效。
  • 如果您需要咨询或示例代码,请尝试文档。如果您尝试实现某些东西并且遇到问题,请发布问题。

标签: json go


【解决方案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)
}

【讨论】:

  • 我发现自己想知道我们是否应该提倡在 go 标记问题中减少手牵手……但与此同时,我希望看到更多地采用这种语言。艰难的决定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多