转换仅包含1个数组字段的JSON

时间:2019-05-14 19:22:12

标签: json go

我正在尝试将仅包含1个字段(显然是数组)的JSON转换为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 个答案:

答案 0 :(得分:0)

在您的教学类型中使用显式标签。

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

如果您是新手,请记住JSON的大小,如果大小很大,请使用流库(jstream或easyjson等), 其他建议是检查可为空的变量,或者当它们为空时忽略它们,可以使用https://github.com/guregu/null

这样的可为空的库

干杯!