我仍在学习 GO,我被以下问题难住了:我收到一个 JSON 字符串,我想在 GO 中解组。JSON 看起来像这样
{
"MAINKEY": {
"key1": 1,
"key2": [1, 2]
}
}
我只对 MAINKEY 的内容感兴趣,但是类似这个问题,我不知道键的名称,应该反映地图的名称。
最后,我想要以下对象:
type Result struct {
Key string
Value []int
}
expectedResult := []Result{
{"key1", []int{1}},
{"key2", []int{1, 2}},
}
fmt.Printf("WANT: %+v\n", expectedResult)
//> WANT: [{Key:key1 Value:[1]} {Key:key2 Value:[1 2]}]
如果可能的话,我不想首先解组map[string]interface{}(但如果没有其他方法,那也可以)。
到目前为止的完整代码是:
package main
import (
"encoding/json"
"fmt"
)
// does produce expected result at the moment...
type Result struct {
Key string
Value []int
}
type Outer struct {
Key Result `json:"MAINKEY"`
}
func main() {
input := `{"MAINKEY": {"key1": 1, "key2": [1, 2]}}`
var cont Outer
json.Unmarshal([]byte(input), &cont)
fmt.Printf("GOT: %+v\n", cont)
expectedResult := []Result{
{"key1", []int{1}},
{"key2", []int{1, 2}},
}
fmt.Printf("WANT: %+v\n", expectedResult)
}
慕尼黑5688855
相关分类