Golang JSON 解析:提取嵌套对象中的特定字段
可以使用encoding/json包中的json.Unmarshal()函数将JSON字符串解析为对应的Go数据结构,然后从中提取所需的字段。
下面是一个示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Item struct {
S map[string]int `json:"s"`
}
func main() {
jsonStr := `[{"s":{"aa":123}},{"s":{"xx":456}}]`
var items []Item
err := json.Unmarshal([]byte(jsonStr), &items)
if err != nil {
fmt.Println("JSON 解析失败:", err)
return
}
var result []map[string]int
for _, item := range items {
result = append(result, item.S)
}
fmt.Println(result)
}
输出结果为:[map[aa:123] map[xx:456]]。
在这个例子中,定义了一个Item结构体,它有一个S字段,类型为map[string]int。然后通过json.Unmarshal()将JSON字符串解析为[]Item类型的items变量。
接着,使用一个循环遍历items,将每个item.S添加到result中。最后,打印出result,即为所需的结果。
注意,这里使用了map[string]int作为S字段的类型,因为示例中的aa和xx的值都是整数类型。如果JSON字符串中的字段类型有其他类型,需要根据实际情况做相应的修改。
原文地址: https://www.cveoy.top/t/topic/pmIL 著作权归作者所有。请勿转载和采集!