我正在写一张地图,我需要将其转换为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
}
}
答案 0 :(得分:2)
切片/数组/地图文字都以相同的方式工作,as explained in the tour-当包含类型尚未指定类型时,每个值文字仅需要指定的类型(例如,地图的地图/切片/数组接口类型),并且每个值列表都用大括号{}
括起来,而不是用JSON括起来的括号[]
:
"req": []interface{}{[]interface{}{[]interface{}{0, "all", []interface{}{0}}}},
请注意,最后一个元素也可以写为[]int{0}
。
答案 1 :(得分:1)
这是执行此操作的基本示例:
package main
import "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"])
}