亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用結構構建以下 JSON 對象

如何使用結構構建以下 JSON 對象

Go
慕萊塢森 2022-08-01 10:04:59
我正在嘗試使用Golang應用程序開發Telegram Bot,一旦用戶啟動與我的機器人應用程序的會話,我需要請求用戶的聯系信息。為此,我們必須使用以下類型的JSON正文向Telegram API發送http請求。我不知道如何使用結構和JSON構建JSON。元帥法。有人可以幫我弄清楚嗎?{    "chat_id": 774854789,    "text": "message",    "parse_mode": "markdown",    "reply_markup": {        "keyboard": [            [{                "text": "Send contact.",                "request_contact": true,                "request_location": false            }]        ],        "resize_keyboard": true    }}這是我需要使用結構構建的JSON。
查看完整描述

1 回答

?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

將構造構造設置為所需的 json - 最好使用結構字段標記。非?;镜氖纠ㄓ嘘P更多信息,請閱讀 https://golang.org/pkg/encoding/json/)和有關結構標簽的一些信息 https://www.digitalocean.com/community/tutorials/how-to-use-struct-tags-in-go:


package main


import (

    "encoding/json"

    "log"

)


type KeyboardStruct struct {

    Text            string `json:"text"`

    RequestContact  bool   `json:"request_contact"`

    RequestLocation bool   `json:"request_location"`

}


type ReplyMarkupStruct struct {

    Keyboard       [][]KeyboardStruct `json:"keyboard"`

    ResizeKeyboard bool               `json:"resize_keyboard"`

}


type ResponseStruct struct {

    ChatId      int               `json:"chat_id"`

    Text        string            `json:"text"`

    ParseMode  string            `json:"parse_mode"`

    ReplyMarkup ReplyMarkupStruct `json:"reply_markup"`

}


func main() {

    // Example 1.

    var res ResponseStruct

    // Make KeyboardStructs

    keyboard := [][]KeyboardStruct{

        {KeyboardStruct{

            Text:            "",

            RequestContact:  false,

            RequestLocation: false,

        }}}

    // Change in .ReplyMarkup.Keyboard

    res.ReplyMarkup.Keyboard = keyboard

    b, _ := json.Marshal(res)

    log.Println(string(b))


    // Example 2.

    keyboard2 := [][]KeyboardStruct{

        {KeyboardStruct{

            Text:            "",

            RequestContact:  true,

            RequestLocation: false,

        }}}

    res2 := ResponseStruct{ChatId: 123346, Text: "test", ReplyMarkup: ReplyMarkupStruct{

        keyboard2, true,

    }}

    b, _ = json.Marshal(res2)

    log.Println(string(b))

}


查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 97 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號