Преобразование JSON, который содержит только 1 поле массивов - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь преобразовать JSON, который содержит только 1 поле, которое, очевидно, является массивом, в сложную структуру в Golang, но, к сожалению, я не получаю данные обратно, вместо этого я получил:

{Result:[]}

Кто-нибудь знает почему?(код ниже)

package main

import (
    "encoding/json"
    "fmt"
)

type Account struct {
    AccountId string
}


type Response struct {
    Result []Account
}

func main() {
    input := []byte(`{
            "result": [
                {"account_id" : "1"},
                {"account_id" : "2"},
                {"account_id" : "3"},
            ]
        }

    `)

    var resp Response
    json.Unmarshal(input, &resp)
    fmt.Printf("%+v\n", resp)
}

1 Ответ

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

используйте явный тег в вашем типе структуры.

type Account struct {
    AccountId string `json:"account_id, omitempty"`
}

Если вы новичок, имейте в виду размер JSON, если он большой, используйте потоковую библиотеку (jstream или easyjson и т. Д.), Другиесовет - проверяйте nullables или пропускайте, когда они пусты, в любом случае вы можете использовать библиотеку nullable, например https://github.com/guregu/null

Cheers!

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