My question is, I have a JSON that returns me a list of objects. But sometimes this list returns me a single object in case the det.
I try to use the pattern below
Det []struct {
NItem string `json:"-nItem"`
Prod struct {
CProd string `json:"cProd"`
CEST string `json:"CEST"`
Cfop string `json:"CFOP"`
UCom string `json:"uCom"`
QCom string `json:"qCom"`
IndTot string `json:"indTot"`
VProd string `json:"vProd"`
CEANTrib string `json:"cEANTrib"`
UTrib string `json:"uTrib"`
NCM string `json:"NCM"`
CEAN string `json:"cEAN"`
XProd string `json:"xProd"`
VUnCom string `json:"vUnCom"`
QTrib string `json:"qTrib"`
VUnTrib string `json:"vUnTrib"`
} `json:"prod"`
Imposto struct {
VTotTrib string `json:"vTotTrib"`
ICMS struct {
ICMS00 struct {
Orig string `json:"orig"`
CST string `json:"CST"`
ModBC string `json:"modBC"`
VBC string `json:"vBC"`
PICMS string `json:"pICMS"`
VICMS string `json:" vICMS"`
} `json:"ICMS00"`
} `json:"ICMS"`
IPI struct {
CEnq string `json:"cEnq"`
IPITrib struct {
CST string `json:"CST"`
VBC string `json:"vBC"`
PIPI string `json:"pIPI"`
VIPI string `json:"vIPI"`
} `json:"IPITrib"`
} `json:"IPI"`
PIS struct {
PISAliq struct {
CST string `json:"CST"`
VBC string `json:"vBC"`
PPIS string `json:"pPIS"`
VPIS string `json:"vPIS"`
} `json:"PISAliq"`
} `json:"PIS"`
COFINS struct {
COFINSAliq struct {
CST string `json:"CST "`
VBC string `json:"vBC"`
PCOFINS string `json:"pCOFINS"`
VCOFINS string `json:"vCOFINS"`
} `json:"COFINSAliq"`
} `json:"COFINS"`
} `json:"imposto"`
} `json:"det"`
but works perfectly, but when the det object receives only element the unmarshal does not work, only works if I remove the slice of struct like that
Det struct {
NItem string `json:"-nItem"`
Prod struct {
CProd string `json:"cProd"`
CEST string `json:"CEST"`
Cfop string `json:"CFOP"`
UCom string `json:"uCom"`
QCom string `json:"qCom"`
IndTot string `json:"indTot"`
VProd string `json:"vProd"`
CEANTrib string `json:"cEANTrib"`
UTrib string `json:"uTrib"`
NCM string `json:"NCM"`
CEAN string `json:"cE
The whole structure looks like this.
SomeStruct struct {
ID string
json:"-Id"
Ide struct {...} json:"ide"
Total struct {
ICMSTot struct {...} json:"ICMSTot"
} json:"total"
Cobr struct { Dup struct {....} json:"dup"
} json:"cobr"
Versao string json:"-versao"
Emit struct { ... } json:"enderEmit"
Det []struct {
NItem string json:"-nItem"
Prod struct {
CProd string json:"cProd"
CEST string json:"CEST"
Cfop string json:"CFOP"
UCom string json:"uCom"
QCom string json:"qCom"
IndTot string json:"indTot"
VProd string json:"vProd"
CEANTrib string json:"cEANTrib"
UTrib string json:"uTrib"
NCM string json:"NCM"
CEAN string json:" cEAN"
XProd string json:"xProd"
VUnCom string json:"vUnCom"
QTrib string json:"qTrib"
VUnTrib string json:"vUnTrib"
} json:"prod"