以下是一个使用AWS SDK Go解组嵌套JSON响应的示例代码:
package main
import (
"fmt"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/dynamodb"
"github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
)
type Item struct {
ID string `json:"id"`
Name string `json:"name"`
}
type Response struct {
Items []Item `json:"items"`
}
func main() {
// 创建一个AWS会话
sess := session.Must(session.NewSessionWithOptions(session.Options{
SharedConfigState: session.SharedConfigEnable,
}))
// 创建DynamoDB客户端
svc := dynamodb.New(sess)
// 构建查询参数
params := &dynamodb.ScanInput{
TableName: aws.String("yourTableName"),
}
// 执行查询
result, err := svc.Scan(params)
if err != nil {
fmt.Println("查询失败", err)
return
}
// 解组JSON响应
var response Response
err = dynamodbattribute.UnmarshalMap(result.Items, &response)
if err != nil {
fmt.Println("解组失败", err)
return
}
// 访问解组后的数据
for _, item := range response.Items {
fmt.Println("ID:", item.ID)
fmt.Println("Name:", item.Name)
}
}
请注意,您需要将代码中的yourTableName替换为您的DynamoDB表的实际名称。此代码假定您已经配置了AWS凭证和默认区域。如果您未配置默认配置文件,请修改会话创建部分以提供适当的配置。