Julia中如何将JSON字符串转换为多个Struct结构体
解决方案
完全不需要手动拆分JSON文件,所有主流编程语言的原生JSON解析库都可直接处理该类嵌套结构,无需引入额外第三方包。
核心思路
你只需要让反序列化的结构和JSON的层级匹配即可,有两种常用实现方式:
- 方式1:直接定义完整的嵌套结构体,一次完成反序列化
- 方式2:先解析为通用字典/Map结构,取出对应子节点后分别反序列化为你已定义好的单个结构体
常用语言示例
Go示例
// 你已经定义好的单个结构体 type Struct1 struct { Arg1 float64 `json:"arg1"` Arg2 int `json:"arg2"` } type Struct2 struct { Arg1 float64 `json:"arg1"` } // 补充定义和JSON顶层匹配的根结构体即可 type Root struct { Struct1 Struct1 `json:"struct1"` Struct2 Struct2 `json:"struct2"` } // 反序列化完整JSON var root Root err := json.Unmarshal([]byte(jsonString), &root) // 直接访问子结构体 fmt.Println(root.Struct1.Arg1) fmt.Println(root.Struct2.Arg1)
Python示例
import json # 直接解析整个JSON为字典 data = json.loads(jsonString) # 取出子结构后可直接使用,也可转成自定义类实例 struct1_data = data["struct1"] struct2_data = data["struct2"]
特殊场景说明
如果子结构的key是动态不确定的,你也可以把顶层定义为map[string]interface{}(Go)或者直接用字典(Python),遍历获取所有子结构后分别处理即可。
内容的提问来源于stack exchange,提问作者ahm5
相关产品推荐
相关产品推荐

