我正在尝试解组该文件:
{
"@babel/[email protected] /cdn-cgi/l/email-protection": {
"licenses": "MIT",
"repository": "https://github.com/babel/babel/tree/master/packages/babel-code-frame",
"publisher": "Sebastian McKenzie",
"email": "[email protected] /cdn-cgi/l/email-protection",
"path": "/Users/lislab/workspace/falcon-enrolment/frontend-customer/node_modules/@babel/code-frame",
"licenseFile": "/Users/lislab/workspace/falcon-enrolment/frontend-customer/node_modules/@babel/code-frame/LICENSE"
},
"[email protected] /cdn-cgi/l/email-protection": {
"licenses": [
"AFLv2.1",
"BSD"
],
"repository": "https://github.com/kriszyp/json-schema",
"publisher": "Kris Zyp",
"path": "/Users/lislab/workspace/falcon-enrolment/frontend-customer/node_modules/json-schema",
"licenseFile": "/Users/lislab/workspace/falcon-enrolment/frontend-customer/node_modules/json-schema/README.md"
}
}
进入这个结构:
type Dependency struct {
Name string
URL string
Version string
License string
}
使用这些说明:
dependencies := map[string]*json.RawMessage{}
err = json.Unmarshal(file, &dependencies)
// boilerplate
for key, value := range dependencies {
depVal := map[string]string{}
err = json.Unmarshal(*value, &depVal)
// boilerplate
result = append(result, depVal)
}
问题在于“[电子邮件受保护] /cdn-cgi/l/email-protection“我们有一个许可证数组而不是一个字符串,因此我显然得到了
json: cannot unmarshal array into Go value of type string
有没有办法自动处理字段license
哪个可以是数组或字符串?
Thanks