2017-10-10 118 views

回答

2

诀窍创造一个条带/混合类型的阵列是使用Go提供

inner := []string{"c", "d"} 
all := []interface{}{"a", "b", inner, "e"} 

然后就是空的接口类型json.Marshal接口片。这是可行的,因为任何和所有的值至少实现一个空的接口。您可以使用最臃肿的对象,就好像它没有任何要调用的方法/接收器函数一样。这就是为什么人们有时会将interface{}类型称为“通用”类型。很多抽象的东西,包使用interface{}参数,然后反射来计算实际传递的内容。试想一下,在编码/ JSON包的源,看看它是如何解组值...

https://play.golang.org/p/96VVo2F1m7

解组将工作在几乎相同的方式:你可以解组JSON字符串转换为interface{}变量。您可能需要使用type-assertions和/或reflection来处理数据。这就是为什么最好创建类型...

0

您CA使用的interface{}片,例如https://play.golang.org/p/c8dPRPK6mr

+0

虽然你的回答是正确的,但我相信OP更喜欢从类型化数据开始(即不是'interface {}'的值,以及如何编组这些数据。你正在解组清空接口并直接编组回来,而忽略了所有的值都可以转换为“接口{}” –

相关问题