3 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊
構(gòu)建 JSON 時(shí),您可以使用該interface{}
變量的任何結(jié)構(gòu):
data.CustomFields=myStructVar
上面的myStructVar
是可以編組為 JSON 的任何結(jié)構(gòu)。
如果您沒有自定義字段的結(jié)構(gòu),您可以使用map[string]interface{}
:
data.CustomFields=map[string]interface{}{"field1":"value1","field2":"value2"}
當(dāng)您解組 JSON 輸入時(shí),interface{}
自定義字段將被解組為map[string]interface{}
JSON 對(duì)象、[]interface{}
JSON 數(shù)組或原始值之一(string、float64、bool)。

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊
我做了這段代碼...
它似乎無法正常工作,我做錯(cuò)了什么?
tenantCustomFields := d.Get("custom_field").(*schema.Set).List()
cf := make(map[string]interface{})
for _, customFieldRaw := range tenantCustomFields {
customField := customFieldRaw.(map[string]interface{})
customFieldName := customField["name"].(string)
customFieldType := customField["type"].(string)
customFieldValue := customField["value"].(string)
if customFieldType == "string" {
cf[customFieldName] = customFieldValue
} else if customFieldType == "integer" {
cfIntValue, err := strconv.ParseInt(customFieldValue, 10, 64)
if err == nil {
return err
}
cf[customFieldName] = cfIntValue
} else if customFieldType == "boolean" {
cfBoolValue, err := strconv.ParseBool(customFieldValue)
if err == nil {
return err
}
cf[customFieldName] = cfBoolValue
}
}
- 3 回答
- 0 關(guān)注
- 196 瀏覽
添加回答
舉報(bào)