猿问

如何在 golang 中键入混合类型的数组?

我正在编写一个需要转换为 JSON 的地图,其中一个必需值是混合类型的数组。


var models = map[string]interface{} {

   ...

   "req": [[0, "all", [0]]],

   ...

}

有没有办法为这个嵌套数组分配一个类型?或者有没有比地图更好的方法来创建这个 JSON?


编辑:我想越来越近了,不确定如何处理嵌套数组


var models = map[string]interface{} {

       ...

       "req": []interface{}{[[0, "all", [0]]]},

       ...

    }

编辑:我要创建的整个 JSON,我只是停留在“req”键上,但由于它被请求:


{

    1388596687391: {

      veArs: [],

      name: 'Basic-f15d2',

      tags: ['Tag'],

      did: 1435588830424,

      usn: -1,

      req: [[0, 'all', [0]]],

      flds: [

        {

          name: 'Front',

          media: [],

          sticky: false,

          rtl: false,

          ord: 0,

          font: 'Arial',

          size: 20

        },

        {

          name: 'Back',

          media: [],

          sticky: false,

          rtl: false,

          ord: 1,

          font: 'Arial',

          size: 20

        }

      ],

      sortf: 0,

      latexPre:

        '\\documentclass[12pt]{article}\n\\special{papersize=3in,5in}\n\\usepackage[utf8]{inputenc}\n\\usepackage{amssymb,amsmath}\n\\pagestyle{empty}\n\\setlength{\\parindent}{0in}\n\\begin{document}\n',

      tmpls: [

        {

          name: 'Card 1',

          qfmt: questionFormat,

          did: null,

          bafmt: '',

          afmt: answerFormat,

          ord: 0,

          bqfmt: ''

        }

      ],

      latexPost: '\\end{document}',

      type: 0,

      id: 1388596687391,

      css,

      mod: 1435645658

    }

  }


猛跑小猪
浏览 121回答 2
2回答

湖上湖

这是一个基本的例子:package mainimport "fmt"func main() {  primes := [6]int {2, 3, 5, 7, 11, 13}  mixed := []interface{} {"foo", 10, primes }  //fmt.Println(mixed...)  test := map[string]interface{} {    "omar":mixed,  }  fmt.Println(test["omar"])}

慕桂英546537

切片/数组/映射文字都以相同的方式工作,如导览中所述- 每个值文字只需要在包含类型尚未指定类型时指定的类型(即接口类型的映射/切片/数组) ,并且每个值列表都包含在大括号中{},而不是[]JSON 中的方括号:   "req": []interface{}{[]interface{}{[]interface{}{0, "all", []interface{}{0}}}},请注意,最后一个元素也可以写为[]int{0}.
随时随地看视频慕课网APP

相关分类

Go
我要回答