可以使用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字段的类型,因为示例中的aaxx的值都是整数类型。如果JSON字符串中的字段类型有其他类型,需要根据实际情况做相应的修改。


原文地址: https://www.cveoy.top/t/topic/pmIL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录