结构体嵌套 树形结构 json字符串与结构体相互转换

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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{},
        },
    },
}

  

 

posted @   papering  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
历史上的今天:
2019-03-07 summary
2019-03-07 函数对象与闭包的误区 函数的指针 高阶函数 将一部分处理以函数对象的形式转移到外部从而实现了算法的通用化
2019-03-07 Leaf:美团分布式ID生成服务开源
2019-03-07 出于性能考虑,C语言自动地以传地址的方式将数组传递给被调函数 const 编译错误 最小权限原则
2019-03-07 好的软件工程 与 高的性能 冲突 耗费处理器时间的函数调用
2019-03-07 定时任务 与 最小公倍数
2019-03-07 线性表的单链表 线性表的静态链表
点击右上角即可分享
微信分享提示