英文:
Missing data when Marshalling map to JSON
问题
我正在尝试将一个名为Foo
的结构体转换为JSON,其中包含一个名为Values map[string]CellValue
的属性,其中CellValue
是另一个结构体。但是,出现了一个问题,生成的JSON不包含CellValue
结构体中保存的数据,尽管Values
映射中的所有键都是存在的。
这里是一个简单的示例代码,可以在playground上复现这个问题。
我对Go还不太熟悉,有人能找出问题所在吗?
英文:
I'm trying to marshal to JSON a struct Foo
that has a Values map[string]CellValue
property where CellValue
is another struct. For some reason, the resultant JSON does not contain the data held in the CellValue
struct even though all the keys in the Values
map are present.
Here's a simple playground repro of the issue.
I'm new to Go, can anyone spot the problem here?
答案1
得分: 1
CellValue的字段是未导出的(以小写字符开头)。根据文档(我强调一下),"每个导出的结构字段都成为对象的成员",这意味着在编组或解组时会忽略未导出的值。
英文:
The fields of CellValue are unexported (start with a lowercase character). Per the documentation (emphasis mine), "Each exported struct field becomes a member of the object" - meaning unexported values are ignored when marshaling or unmarshaling.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论