问题描述
{
"key1": "value1","key2": "value2"
}
我将其作为字符串类型存储在AWS SSM中。它返回一个类似于以下内容的字符串:
"{\n\"key1\": \"value1\",\n\"key2\": \"value2\"\n}"
我发现当我有一个简单的JSON作为{"key1": "value1","key2": "value2"}
我可以简单地做到这一点
package main
import (
"fmt"
"encoding/json"
)
type Request struct {
key1 string `json:"key1"`
key2 string `json:"key2"`
}
func main() {
s := `{"key1": "value1","key2": "testing"}`
data := Request{}
json.Unmarshal([]byte(s),&data)
fmt.Printf("key1: %s \n",data.key1)
fmt.Printf("key2: %s",data.key2)
}
如何在SSM中存储类似JSON的值,然后将其解组?还是有一种将字符串转换为JSON然后转换为结构的方法?
解决方法
我发现,当我有一个简单的JSON作为字符串时,例如{“ key1”:“ value1”,“ key2”:“ value2”} 我可以简单地做到这一点
您当前的代码无效。您的struct字段需要公开,以便json包访问它们。
package main
import (
"fmt"
"encoding/json"
)
type Request struct {
Key1 string `json:"key1"`
Key2 string `json:"key2"`
}
func main() {
s := `{"key1": "value1","key2": "testing"}`
data := Request{}
json.Unmarshal([]byte(s),&data)
fmt.Printf("key1: %s \n",data.Key1)
fmt.Printf("key2: %s",data.Key2)
}
我将其作为字符串类型存储在AWS SSM中。它返回一个类似于以下内容的字符串: “ {\ n” key1“:” value1“,\ n” key2“:” value2“ \ n}”
不确定AWS SSM,但是我建议您看看如何发布和检索数据。任何外部服务都不能更改您的数据。
但是,如果不能这样做,则可以在取消集散之前对其进行解围。
package main
import (
"encoding/json"
"fmt"
"strconv"
)
type Request struct {
Key1 string `json:"key1"`
Key2 string `json:"key2"`
}
func main() {
s := `"{\n\"key1\": \"value1\",\n\"key2\": \"value2\"\n}"`
s,_ = strconv.Unquote(string(s))
data := Request{}
json.Unmarshal([]byte(s),data.Key2)
}