我有一个嵌套的结构,我想循环遍历这个结构。请帮我如何循环结构以获得此格式的输出。我已经提到了我正在使用的结构。
预期产出:
{
"PrefcatID":"PREF_001"
"prefname: :"PREF_name"
"PrefSubcategory":
{
"subcatid":"SUB_PREF_001",
"PrefcatID":"PREF_001",
"subcatname":"Sub Category Name 1"
},
{
"subcatid":"SUB_PREF_002",
"PrefcatID":"PREF_001",
"subcatname":"Sub Category Name 2"
}
}
Go中的结构:
type PrefCategory struct {
PrefcatID string `json:"PrefcatID"`
PrefName string `json:"prefname"`
Temp_PrefSubcategory []PrefSubcategory `json:"prefSubcategory "`
}
type PrefSubcategory struct {
PrefcatID string `json:"PrefcatID"`
SubcatId string `json:"subcatid"`
SubCatName string `json:"subcatname"`
}
答案 0 :(得分:0)
您几乎就在那里,但请注意您的JSON示例中存在一些语法错误。结构几乎也存在,最终,您只需构建具有预期值的PrefCategory实例marshal it to JSON:
type PrefCategory struct {
PrefcatID string `json:"PrefcatID"`
PrefName string `json:"prefname"`
Temp_PrefSubcategory []PrefSubcategory `json:"prefSubcategory"`
}
type PrefSubcategory struct {
PrefcatID string `json:"PrefcatID"`
SubcatId string `json:"subcatid"`
SubCatName string `json:"subcatname"`
}
func main() {
pref := PrefCategory{
"PREF_001",
"PREF_name",
[]PrefSubcategory{
{"SUB_PREF_001", "PREF_001", "Subcategory Name 1"},
{"SUB_PREF_002", "PREF_001", "Subcategory Name 2"},
},
}
jsonbytes, err := json.MarshalIndent(&pref, "", " ")
if err != nil {
panic(err)
}
fmt.Println(string(jsonbytes))
/*
{
"PrefcatID": "PREF_001",
"prefname": "PREF_name",
"prefSubcategory": [
{
"PrefcatID": "SUB_PREF_001",
"subcatid": "PREF_001",
"subcatname": "Subcategory Name 1"
},
{
"PrefcatID": "SUB_PREF_002",
"subcatid": "PREF_001",
"subcatname": "Subcategory Name 2"
}
]
}
*/
}