10
我想創建一個地圖,我可以轉變成JSON對象如將字符串映射到json對象的多種類型?
{
"a": "apple",
"b": 2
}
但golang指定該地圖類型來聲明,所以可有地圖[字符串]字符串或映射[字符串] INT。我如何創建一個像上面這樣的json對象?
注意:直到運行時或需要創建json對象時,我纔會知道需要哪些數據和/或類型。因此,我不能只是創造這樣
type Foo struct {
A string `json:"a"`
B int `json:"b"`
}
你的值也可以是一個數組嗎? m:= map [string] interface {} {「a」:「apple」,「b」:2,「c」:[「foo」,2,「bar」,false,{「baz」 「bat」,「moreFoo」:7}]}' –
@BrantleyBeaird好的!空接口('interface {}')包含任何類型,包括數組。由於數組本身包含任意類型,因此它將變爲類型'[] interface {}' – ANisus
接口類型(其中'interface {}'是指定任何方法的接口類型)可以包含任何基礎類型,但是它們會增加運行時間開銷在內存使用方面(附加類型信息在其值被轉換爲接口值時被存儲)和一些處理。從動態語言中可以使用某些靈活性來支付合理的代價,但在沒有理由的情況下不能使用。接口類型可以包含除另一種接口類型之外的任何基礎類型這包括普通類型,如int,float64,還包括數組,地圖,通道等。 – thomasrutter