我想编组这个结构的一部分:type ValueSet struct { Id string `json:"id" bson:"_id"` Url string `bson:"url,omitempty" json:"url,omitempty"` Identifier *Identifier `bson:"identifier,omitempty" json:"identifier,omitempty"` Version string `bson:"version,omitempty" json:"version,omitempty"` Name string `bson:"name,omitempty" json:"name,omitempty"` Status string `bson:"status,omitempty" json:"status,omitempty"` Experimental *bool `bson:"experimental,omitempty" json:"experimental,omitempty"` Publisher string `bson:"publisher,omitempty" json:"publisher,omitempty"` Contact []ValueSetContactComponent `bson:"contact,omitempty" json:"contact,omitempty"` Date *FHIRDateTime `bson:"date,omitempty" json:"date,omitempty"` LockedDate *FHIRDateTime `bson:"lockedDate,omitempty" json:"lockedDate,omitempty"` Description string `bson:"description,omitempty" json:"description,omitempty"` UseContext []CodeableConcept `bson:"useContext,omitempty" json:"useContext,omitempty"` Immutable *bool `bson:"immutable,omitempty" json:"immutable,omitempty"` Requirements string `bson:"requirements,omitempty" json:"requirements,omitempty"` Copyright string `bson:"copyright,omitempty" json:"copyright,omitempty"`}这是HL7 FHIR的 Go 实现的一部分,仅包括元数据字段,并省略了三个内容三个字段(codeSystem、compose 和 expand)。我不能(也不应该)更改原始源代码中的 JSON 标签,因为其他代码强烈依赖于它的编写方式。如何告诉 json.Marshal 覆盖这些结构元素上的现有 JSON 标记?
1 回答
SMILET
TA贡献1796条经验 获得超4个赞
你不能改变它,但你没有必要。
最简单的解决方案是创建您自己的结构,定义您自己的 json 标签(您希望它们如何出现在输出中),复制字段,并编组您自己的结构的值。
例如,假设您要编组Id和Url字段,然后:
type MyValueSet struct {
Id string `json:"MyId"`
Url string `json:"MyUrl"`
}
var vs ValueSet = ... // Comes from somewhere
mvs := MyValueSet {
Id: vs.Id,
Url: vs.Url,
}
data, err := json.Marshal(&mvs)
// Check err
- 1 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消