这是我的结构
type studentData struct {
Name string `bson:"name"`
Grade int `bson:"Grade"`
}
type student struct {
student []studentData `json:"student"`
}
我需要像这样的JSON结果
{
"array": [
{
"Name": "ethan",
"Grade": 2
},
{
"Name": "rangga",
"Grade": 2
}
]
}
我从mongoDB获取数据,已经尝试搜索但是没有发现我需要,有人可以帮助我吗?
答案 0 :(得分:2)
虽然您的JSON没有多大意义,但这会输出您想要的确切JSON:
package main
import (
"encoding/json"
"os"
)
type Student struct {
Name string `json:"name"`
Grade int `json:"Grade"`
}
type Students struct {
Array []Student `json:"array"`
}
func main() {
student1 := Student{
Name: "Josh",
Grade: 2,
}
student2 := Student{
Name: "Sarah",
Grade: 4,
}
students := Students{
Array: []Student{student1, student2},
}
b, err := json.Marshal(students)
if err != nil {
panic(err)
}
os.Stdout.Write(b)
}
答案 1 :(得分:0)
要使encoding/json
能够封送您的结构,它需要查看您希望它序列化的字段。
在您的情况下,student.student
未导出,因此encoding/json
不可见。导出它并且有效:
type student struct {
Student []studentData `json:"student"`
}
旁边的注释:使用“#34;学生”之外的其他内容。对于名为" student"的结构中的[]studentData
类型的字段。也许像" Grades"或者" TranscriptInformation"?
旁边的另一个注意事项:您所需的JSON不是"对",标识符/键不应大写,即"Name"
应为"name"
。
此外,搜索[go] embedded json
时出现了this;)