Подготовка полезной нагрузки GoLang JSON с несколькими данными - PullRequest
0 голосов
/ 15 мая 2019

Я хочу создать полезную нагрузку JSON в указанном ниже формате.Я хочу код или шаблон, который готовит данный формат.

{
    transactiontype: 'DDDDD'
    emailType: 'QQQQQQ'
    template: {
        templateUrl: 'xry.kk'
        templateName: 'chanda'
    }
    date: [
        {
            UserId: 1
            Name: chadnan
        },
        {
            UserId: 2
            Name: kkkkkk
        }
    ]
}

Ответы [ 3 ]

1 голос
/ 15 мая 2019

Вы можете использовать онлайн-инструмент для преобразования json в действительную структуру Go: https://mholt.github.io/json-to-go/

Учитывая ваш JSON, структура Go имеет вид:

type AutoGenerated struct {
    Transactiontype string `json:"transactiontype"`
    EmailType       string `json:"emailType"`
    Template        struct {
        TemplateURL  string `json:"templateUrl"`
        TemplateName string `json:"templateName"`
    } `json:"template"`
    Date []struct {
        UserID int    `json:"UserId"`
        Name   string `json:"Name"`
    } `json:"date"`
}

После преобразования,используйте json.Marshal (Go Struct to JSON) и json.Unmarshal (JSON to Go Struct)

Полный пример с вашими данными: https://play.golang.org/p/RJuGK4cY1u-

1 голос
/ 16 мая 2019
// Transaction is a struct which stores the transaction details
type Transaction struct {
    TransactionType string   `json:"transaction_type"`
    EmailType       string   `json:"email_type"`
    Template        Template `json:"template"`
    Date            []Date   `json:"date"`
}

//Template is a struct which stores the template details
type Template struct {
    TemplateURL  string `json:"template_url"`
    TemplateName string `json:"template_name"`
}

// Date is a struct which stores the user details
type Date struct {
    UserID int    `json:"user_id"`
    Name   string `json:"name"`
}

Вышеуказанные структуры являются правильной структурой данных для хранения вашего тела json, вы можете использовать декодер json для идеального хранения данных в struct

func exampleHandler(w http.ResponseWriter, r *http.Request) {
    var trans Transaction
    decoder := json.NewDecoder(r.Body)
    err := decoder.Decode(&trans)
    if err != nil {
        log.Println(err)
    }
}
1 голос
/ 15 мая 2019

Надеюсь, это поможет:

type Template struct {
TemplateURL string `json:"templateUrl" param:"templateUrl"`
TemplateName string `json:"templateName" param:"templateName"`
}

type Date struct {
UserId string `json:"UserId" param:"UserId"`
Name string `json:"Name" param:"Name"`
}
type NameAny struct {
*Template
TransactionType string `json:"transactiontype" param:"transactiontype"`
EmailType string `json:"emailType" param:"emailType"`
Data []Date `json:"date" param:"date"`
}
Data, _ := json.Marshal(NameAny)
Json(c, string(Data))(w, r)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...