Разобрать массив тела json, отправленный в запросе POST, и распечатать в GoLang

Я новичок в GOlang, у меня одна проблема при чтении массива json. Нужна помощь по запросу ниже.

Запросить Json:

{ "httpReq": {
"username": "1234567890",
"password": "1234567890",
"number": "123456"
}
}

Ответ Json:

{ "httpResp": {
    "status": "Pass",
    "message": "great"
    }
    }

Ниже был мой код: Если я передаю объект json ниже его рабочего, но мне нужно отправить "httpReq" в json.

package main

import (
    "encoding/json"
    "fmt"
)


type people struct {
    Username string `json:"username"`
    Password string `json:"password"`
    Number string `json:"number"`

}

type peopleread struct {
    Collection []people
}

func main() {
    text := `{
    "username": "1234567890",
    "password": "1234567890",
    "number": "123456"

}`
    textBytes := []byte(text)

    //people1 := people{}
    var people2 people
    err := json.Unmarshal(textBytes, &people2)
    if err != nil {
        fmt.Println(err)
        return
    }
    Username := people2.Username
    Password := people2.Password
    Number := people2.Number
        fmt.Println(Username)
        fmt.Println(Password)
        fmt.Println(Number) 
}

1 ответ

Решение

Размаршалировать с httpReq поле, вы должны справиться с этим.

Создайте структуру, чтобы обернуть тело запроса, например json

type HttpReq struct{
   HttpReq people `json:"httpReq"`
}

Затем используйте unmarshal

var httpReq HttpReq
err := json.Unmarshal(textBytes, &httpReq)

Полный код на игровой площадке Go здесь

Другие вопросы по тегам