【发布时间】:2020-12-15 00:09:17
【问题描述】:
我有一个map[string][]byte 类型的地图,现在[]byte 的值是base64 编码的。
[]byte 中有一个 JSON 编码,我想进一步使用它。现在我这样做是为了解码 base64 []byte 数组。
假设我的secretInfo 看起来像这样
apiVersion: v1
kind: Secret
metadata:
namespace: kube-system
name: my-credentials
data:
secret_account.json: SGVsbG8sIHBsYXlncm91bmQ= // My base64 encoded data(not real/Actual data)
bytes, _ := b64.StdEncoding.DecodeString(string(secretInfo.Data["secret_account.json"])) // Converting data
var privateKeyJSON map[string]interface{}
err := json.Unmarshal(bytes, &privateKeyJSON)
if err != nil {
r.Logger.Infof("Failed to parse secret %v", err)
}
现在,我将 JSON 的值作为字符串传递给其他 JSON。
secretInfo.StringData["DecodedPrivateKeyJson"] = string(bytes)
它给我一个错误说,StringData.DecodedPrivateKeyJson 中的预期 JSON。
我错过了什么?
【问题讨论】:
-
编码值似乎不是有效的 JSON。你能确定吗?
-
@mehdy 这是一个虚拟值,假设它是一个有效的 JSON。我无法发布实际的 JSON,因为它包含所有私有编码的 JSON,因为它有很多个人数据。但请放心,JSON 编码完美。