第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 golang 中與 []struct 交互

在 golang 中與 []struct 交互

Go
慕尼黑5688855 2022-10-24 15:33:28
我有以下代碼:type AzStorageAccount struct {Type     string `json:"type"`Location string `json:"location"`Tags     struct {} `json:"tags"`Properties struct {    PrivateLinkServiceConnections []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"`    } `json:"privateLinkServiceConnections"`    ManualPrivateLinkServiceConnections []interface{} `json:"manualPrivateLinkServiceConnections"`    Subnet                              struct {        ID string `json:"id"`    } `json:"subnet"`    CustomDNSConfigs []interface{} `json:"customDnsConfigs"`} `json:"properties"`}但是我在將值分配給 PrivateLinkServiceConnections []struct {} 中的變量時遇到問題起初我正在使用,但由于我需要使用 []struct 它不再起作用。storageAccount.Location = "eastus2"    storageAccount.Type = "Microsoft.Network/privateEndpoints"    storageAccount.Properties.PrivateLinkServiceConnections.Properties.PrivateLinkServiceId = "/subscriptions"    storageAccount.Properties.PrivateLinkServiceConnections.Name = "priv-endpoint"    storageAccount.Properties.PrivateLinkServiceConnections.Properties.GroupIds = "postgresqlServer"    storageAccount.Properties.PrivateLinkServiceConnections.Properties.PrivateLinkServiceConnectionState.Status = "Approved"    storageAccount.Properties.PrivateLinkServiceConnections.Properties.PrivateLinkServiceConnectionState.Description = "Auto-approved"    storageAccount.Properties.PrivateLinkServiceConnections.Properties.PrivateLinkServiceConnectionState.ActionsRequired = "None"    storageAccount.Properties.Subnet.Id = "/subscriptions/..."如何為下面的代碼賦值?
查看完整描述

3 回答

?
www說

TA貢獻1775條經(jīng)驗 獲得超8個贊

PrivateLinkServiceConnections被定義為一個數(shù)組。您不能像訪問對象那樣訪問它。要向其中添加項目,您需要使用append 函數(shù)。

此外,您已將其定義為內(nèi)聯(lián)匿名結(jié)構(gòu),因此您的代碼變得混亂。為 PrivateLinkServiceConnections 定義一個特定的類型,然后每次追加時,只需分配它而無需重新聲明它。這是一種不好的做法。


查看完整回答
反對 回復(fù) 2022-10-24
?
蠱毒傳說

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)

...


查看完整回答
反對 回復(fù) 2022-10-24
?
揚帆大魚

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

}

謝謝您的幫助!


查看完整回答
反對 回復(fù) 2022-10-24
  • 3 回答
  • 0 關(guān)注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號