1. 程式人生 > 其它 >結構體巢狀 樹形結構 json字串與結構體相互轉換

結構體巢狀 樹形結構 json字串與結構體相互轉換

package main

import (
	"encoding/json"
)

type T struct {
	K        int32
	V        string
	Children []T
}

func convert() {
	var target T
	err := json.Unmarshal([]byte(jsonStr), &target)
	if err != nil {
		panic(err)
	}

	bs, err := json.Marshal(jsonStruct)
	if err != nil {
		panic(err)
	}
	s := string(bs)
	if s != "" {

	}
}

var jsonStr = `
{
    "K": 1,
    "V": "v",
    "Children": [
        {
            "K": 11,
            "V": "11v",
            "Children": [
                {
                    "K": 111,
                    "V": "111v",
                    "Children": []
                },
                {
                    "K": 112,
                    "V": "112v",
                    "Children": [
                        {
                            "K": 1121,
                            "V": "1121v",
                            "Children": []
                        },
                        {
                            "K": 1122,
                            "V": "1122v",
                            "Children": []
                        }
                    ]
                }
            ]
        },
        {
            "K": 12,
            "V": "12v",
            "Children": []
        }
    ]
}
`

var jsonStruct = T{
	K: 1,
	V: "v",
	Children: []T{
		{
			K: 11,
			V: "11v",
			Children: []T{
				{
					K:        111,
					V:        "111v",
					Children: []T{},
				},
				{
					K: 112,
					V: "112v",
					Children: []T{
						{
							K:        1121,
							V:        "1121v",
							Children: []T{},
						},
						{
							K:        1122,
							V:        "1122v",
							Children: []T{},
						},
					},
				},
			},
		},
		{
			K:        12,
			V:        "12v",
			Children: []T{},
		},
	},
}