3 回答

TA貢獻1775條經(jīng)驗 獲得超8個贊
PrivateLinkServiceConnections
被定義為一個數(shù)組。您不能像訪問對象那樣訪問它。要向其中添加項目,您需要使用append
函數(shù)。
此外,您已將其定義為內(nèi)聯(lián)匿名結(jié)構(gòu),因此您的代碼變得混亂。為 PrivateLinkServiceConnections 定義一個特定的類型,然后每次追加時,只需分配它而無需重新聲明它。這是一種不好的做法。

TA貢獻1895條經(jīng)驗 獲得超3個贊
最簡單、最明智的方法是定義一個新類型:
type PrivateLinkServiceConnections struct {
Name string `json:"name"`
...
}
Properties struct {
Connections []PrivateLinkServiceConnections `json:"privateLinkServiceConnections"`
...
否則,您必須在每次初始化實例時明確指定每個結(jié)構(gòu)的結(jié)構(gòu),例如:
x:=struct {
Name string `json:"name"`
Properties struct {
PrivateLinkServiceID string `json:"privateLinkServiceId"`
GroupIds string `json:"groupIds"`
PrivateLinkServiceConnectionState struct {
Status string `json:"status"`
Description string `json:"description"`
ActionsRequired string `json:"actionsRequired"`
} `json:"privateLinkServiceConnectionState"`
} `json:"properties"`
}{
Name:"name",
Properties:struct {
PrivateLinkServiceID string `json:"privateLinkServiceId"`
GroupIds string `json:"groupIds"`
PrivateLinkServiceConnectionState struct {
Status string `json:"status"`
Description string `json:"description"`
ActionsRequired string `json:"actionsRequired"`
} `json:"privateLinkServiceConnectionState"`
} {
PrivateLinkServiceID: id,
},
}
storageAccount.PrivateLinkServiceconnections=append(storageAccount.PrivateLinkServiceConnections, x)
...

TA貢獻1799條經(jīng)驗 獲得超9個贊
起初我做了一個解決方法來添加我需要的“[]”并且它有效但它不是很好。
但現(xiàn)在我終于明白了
#模型文件
type AccessPolicieS struct {
TenantID string `json:"tenantId"`
ObjectID string `json:"objectId"`
Permissions struct {
Keys []string `json:"keys"`
Secrets []string `json:"secrets"`
Certificates []string `json:"certificates"`
} `json:"permissions"`
}
type AzVaultPriv struct {
Properties struct {
AccessPolicies []AccessPolicieS
} `json:"properties"`
}
acessP := models.AccessPolicieS{}
acessP.TenantID = "*******"
acessP.Permissions.Keys = append(acessP.Permissions.Keys, "UnwrapKey")
acessP.Permissions.Keys = append(acessP.Permissions.Keys, "WrapKey")
acessP.Permissions.Keys = append(acessP.Permissions.Keys, "Get")
acessP.Permissions.Secrets = append(acessP.Permissions.Secrets, "get")
acessP.Permissions.Certificates =
append(acessP.Permissions.Certificates, "get")
newModel := models.AzVaultPriv {}
newModel.Properties.AccessPolicies = append(newModel.Properties.AccessPolicies, acessP)
marshaledObject, _ := json.Marshal(newModel)
按照下面的一個不理想的解決方法,但讓我繼續(xù)前進,直到我解決了這個問題。
func FormatJsonStructVaultPriv(json []byte) []byte {
json = bytes.Replace(json, []byte("Policies\":{"), []byte("Policies\":[{"), 1)
json = bytes.Replace(json, []byte("get\"]}}}}"), []byte("get\"]}}]}}"), 1)
return json
}
謝謝您的幫助!
- 3 回答
- 0 關(guān)注
- 116 瀏覽
添加回答
舉報