json - 我如何解组这个 JSON
问题描述
我有两个具有以下签名的函数:
1) func printAWSDataToConsole(edgexcontext *appcontext.Context, params ...interface{}) (bool, interface{}) {
和
2) func (f Conversion) TransformToAWS()
在哪里
func NewConversion() Conversion {
return Conversion{}
}
起初 TransformToAWS 正在返回
true, string(msg)
我可以通过做一个简单的来打印 printAWSDataToConsole 中 msg 的值
fmt.Println(params[0].(string))
现在我更改了 TransformToAWS 以返回一个 json:
data := YuccaDataStream {
Stream : "temperatura2",
Sensor : "ec6c613a-66b4-4584-fb37-5f7cac130f7d",
Values : []Value {
Value {
Time:formattedTime,
Components: Components{Alfanum :"15.55"},
}, }, }
dataAsBytes, err := json.Marshal(data)
return true, dataAsBytes
在哪里
type YuccaDataStream struct {
Stream string `json:"stream"`
Sensor string `json:"sensor"`
Values []Value `json:"values"`
}
type Value struct {
Time string `json:"time"`
Components `json:"components"`
}
type Components struct {
Alfanum string `json:"alfanum"`
}
我不知道如何在 printAWSDataToConsole 中解组 json。
解决方案
要解组,请使用以下代码:
var dataOut YuccaDataStream
err = json.Unmarshal(dataAsBytes, &dataOut)
而已。就如此容易。