我想返回一个看起来像这样的结构:
{ results: [ ["ooid1", 2.0, "Söme text"], ["ooid2", 1.3, "Åther text"], ] }
这是一个数组,包括字符串,浮点数和Unicode字符。
如果是Python,我将能够:
import json json.dumps({'results': [["ooid1", 2.0, u"Söme text"], ...])
但是在Go中,您不能具有混合类型的数组(或切片)。
我想到使用这样的结构:
type Row struct { Ooid string Score float64 Text rune }
但是我不希望每个字典都成为字典,我希望每个字典都由3个元素组成。
用 []interface{}
[]interface{}
type Results struct { Rows []interface{} `json:"results"` }
如果要访问存储在其中的值,则必须使用类型断言 []interface{}
for _, row := range results.Rows { switch r := row.(type) { case string: fmt.Println("string", r) case float64: fmt.Println("float64", r) case int64: fmt.Println("int64", r) default: fmt.Println("not found") } }