当前位置: 首页 > news >正文

【golang】json.Unmarshal接收JSON数据并验证特定的字段

package mainimport ("encoding/json""fmt""log"
)// 定义一个结构体,字段名要与JSON中的键匹配
type MyData struct {Name    *string `json:"name"`    // 目标字段,类型为stringAge     *int    `json:"age"`     // 目标字段,类型为intEmail   *string `json:"email"`   // 目标字段,类型为stringIsAdmin *bool   `json:"isAdmin"` // 目标字段,类型为bool
}func main() {// 假设这是从某个来源接收到的JSON字符串// jsonData := `{"name":"John Doe","age":30,"email":"john@example.com","isAdmin":true}`//结果// 	Name: John Doe// Age: 30// Email: john@example.com// Is Admin: truejsonData := `{"age":30,"email":"john@example.com","isAdmin":true}`//结果//2024/10/28 10:00:55 JSON data does not contain the required fields or fields are of incorrect type// 创建一个MyData类型的变量来接收解析后的数据var data MyData// 解析JSON数据到结构体err := json.Unmarshal([]byte(jsonData), &data)if err != nil {log.Fatalf("Error parsing JSON: %s", err)}// 检查是否包含目标字段,并且类型符合预期if data.Name == nil || data.Age == nil || data.Email == nil || data.IsAdmin == nil {log.Fatal("JSON data does not contain the required fields or fields are of incorrect type")}// 如果没有错误,打印接收到的数据fmt.Printf("Name: %s\n", *data.Name)fmt.Printf("Age: %d\n", *data.Age)fmt.Printf("Email: %s\n", *data.Email)fmt.Printf("Is Admin: %t\n", *data.IsAdmin)
}


http://www.mrgr.cn/news/60187.html

相关文章:

  • hmc7044时钟芯片调试笔记
  • C++(this指针)
  • 【Canvas与图标】六色彩虹圆角六边形图标
  • 【SpringCloud】 K8s的滚动更新中明明已经下掉旧Pod,还是会把流量分到了不存活的节点
  • 尚硅谷-react教程-求和案例-@redux-devtools/extension 开发者工具使用-笔记
  • 华为OD机试真题-考勤信息
  • Java 基础教学:流程控制-循环结构
  • Linux下的常见指令以及权限
  • 高清 MV 无字幕视频素材
  • VUE3实现古典音乐网站源码模板
  • 直播系统源码技术搭建部署流程及配置步骤
  • 使用田口实验获取优化算法的参数最优组合
  • MATLAB+opencv人脸疲劳检测
  • 大厂面经:京东嵌入式面试题及参考答案
  • Redis-06 Redis高可用集群架构原理与搭建
  • 【MATLAB源码-第194期】基于matlab的MB-OFDM仿真,超宽带(UWB)无线传输。对比LS/DFT及其改进算法。
  • 【GESP】C++一级练习BCQM3085,最大的数
  • ChatSearch:一个基于多轮多模态对话上下文的图像检索数据集,它要求检索系统能够在对话中准确找到目标图像。
  • 字符(串)输入输出函数
  • 大数据都有哪些技术?
  • 火语言RPA流程组件介绍--网络监听数据清空
  • 【C++】类和对象(一):初步认识
  • 集合论(ZFC)之实数集(Reals)的构建(Construction)
  • Leetcode 3336. Find the Number of Subsequences With Equal GCD
  • Leetcode 3337. Total Characters in String After Transformations II
  • Leetcode 3332. Maximum Points Tourist Can Earn