package main
import (
"encoding/json"
"fmt"
)
type testjson
struct {
Test1
string `json:"test1"`
Test2
int `json:"test2"`
Test3
[]test3
`json:"test3"`
Test6 test6
`json:"test6"`
}
type test3
struct {
Test4
string `json:"test4"`
Test5
int `json:"test5"`
}
type test6
struct {
Test7
string `json:"test7"`
Test8
int `json:"test8"`
}
func main() {
jsonData
:= testjson
{
Test1
: "步荀仙",
Test2
: 999,
}
jsonData2
:= test3
{
Test4
: "南宫恨",
Test5
: 888,
}
jsonData3
:= test3
{
Test4
: "俏如来",
Test5
: 777,
}
jsonData
.Test6
.Test7
= "锦烟霞"
jsonData
.Test6
.Test8
= 123
jsonData
.Test3
= append(jsonData
.Test3
, jsonData2
)
jsonData
.Test3
= append(jsonData
.Test3
, jsonData3
)
mapTestData
:= make(map[string]interface{})
jsonInfo
, _ := json
.Marshal(jsonData
)
_ = json
.Unmarshal(jsonInfo
, &mapTestData
)
fmt
.Println(mapTestData
)
fmt
.Println(mapTestData
["test3"].([]interface{})[0].(map[string]interface{})["test4"])
fmt
.Println(mapTestData
["test6"].(map[string]interface{})["test7"])
for _, j
:= range mapTestData
["test3"].([]interface{}) {
fmt
.Println(j
.(map[string]interface{}))
}
}
输出结果
root@ main [master] $ go run service.go
map[test1:步荀仙 test2:999 test3:[map[test4:南宫恨 test5:888] map[test4:俏如来 test5:777]] test6:map[test7:锦烟霞 test8:123]]
南宫恨
锦烟霞
map[test4:南宫恨 test5:888]
map[test4:俏如来 test5:777]
转载请注明原文地址: https://mac.8miu.com/read-485840.html