Reputation: 4703
I'm writing out a map which I need to convert to JSON, and one of the required values is an array of mixed type.
var models = map[string]interface{} {
...
"req": [[0, "all", [0]]],
...
}
Is there a way to assign a type to this nested array? Or is there a better approach for creating this JSON than a map?
Edit: Getting closer I think, unsure what to do about the nested arrays
var models = map[string]interface{} {
...
"req": []interface{}{[[0, "all", [0]]]},
...
}
Edit: The entire JSON I'm looking to create, I'm just stuck on the "req" key, but since it was requested:
{
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
}
}
Upvotes: 5
Views: 17466
Reputation: 2609
Here is a basic example of doing it:
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"])
}
Upvotes: 12
Reputation: 46423
Slice/array/map literals all work the same way, as explained in the tour - each value literal just needs the type specified when the containing type doesn't already specify the type (i.e. a map/slice/array of an interface type), and every list of values is enclosed in braces {}
, not brackets []
as in JSON:
"req": []interface{}{[]interface{}{[]interface{}{0, "all", []interface{}{0}}}},
Note that the last element could also be written as []int{0}
.
Upvotes: 3