我有一個用例,我將一些 json 文件轉換為 Go 結構。我有以下文檔結構{ "contentVersion": "1.0.0.0", "paths" : [ { "ParameterReference": "someValue", }, { "ParameterReference": "someOtherValue", } ], "parameters": { "label": { "value": "label" }, "domainName": { "value": "domain" }, "servicePackageLink": { "value": "bin\\test.cspkg" }, "pfxContent": { "value": "SampleCert.Content" }, "sampleCertThumbprint": {"value": "SampleCert.Thumbprint"}, "anotherSampleCertContent":{ "value" : "AnotherSampleCert.Content" }, "anotherSampleCertThumbprint": {"value": "AnotherSampleCert.Thumbprint"} }, "secrets" :[ { "TargetReference":"SERviceConfiGURatiONLiNK", "Replacements": { "__Secret_Sample__" : { "SecretId":"secretID", "EncryptWith" :"encryptWithValue" }, "__Another_Secret_Sample__" : { "SecretId":"anotherSecretValue", "EncryptWith" :"anotherEncryptWithValue" }, "__Storage_ConnectionString__" : "someConnectionString" }, }, { "TargetReference":"None", "Certificates":[ { "Name":"AnotherSampleCert", "ContentReference" : "contentReference" } ] } ]} 我面臨的問題是 json 沒有固定的模式,例如。如果您檢查parameters對象,特別是名稱為 的條目sampleCertSchema,在我的用例中,用戶可以提供從 0 到 N 的任意數量的此類____CertSchemas值。因此,參數字段也可以如下"parameters": { "label": { "value": "label" }, "domainName": { "value": "domain" }, "servicePackageLink": { "value": "bin\\test.cspkg" }, "pfxContent": { "value": "SampleCert.Content" } },這將打印一個空結構。我的問題是,我應該如何在 Go 中定義一個結構,以便它能夠加載一個帶有非預定義條目的 json。使用 java/C# 我可以使用Object該類并創建一個文檔,但我無法理解使用 Go 來執行此操作。
2 回答

千萬里不及你
TA貢獻1784條經驗 獲得超9個贊
go 中的等價物是 interface{},即空接口。例如,查看這個答案:Unmarshaling Into an Interface{} and Then Performing Type Assertion
一旦您知道要搜索的術語,您應該能夠在需要時搜索更詳細的內容。
- 2 回答
- 0 關注
- 168 瀏覽
添加回答
舉報
0/150
提交
取消