Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在golang中的嵌套结构上循环?_Go - Fatal编程技术网

如何在golang中的嵌套结构上循环?

如何在golang中的嵌套结构上循环?,go,Go,我有一个嵌套结构,我想在这个结构上循环。请帮助我如何循环结构以获得此格式的输出。我已经提到了我正在使用的结构 预期产出: { "PrefcatID":"PREF_001" "prefname: :"PREF_name" "PrefSubcategory": { "subcatid":"SUB_PREF_001", "PrefcatID":"PREF_001", "subcatname":"Sub

我有一个嵌套结构,我想在这个结构上循环。请帮助我如何循环结构以获得此格式的输出。我已经提到了我正在使用的结构

预期产出:

    {  
    "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"`
     }

您已经差不多做到了,但请注意,JSON示例中存在一些语法错误。结构也差不多了,最终,您只需使用预期值和以下值构建PrefCategory的实例:


输出是JSON吗?编码/JSON.Marshal有什么问题吗?是的,输出是JSON@zolather,没有理由循环。就用吧。文档中的示例完全符合您的要求。您没有包含任何带有for循环的代码。我们能为您做些什么?
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"
      }
    ]
  }
  */
}