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

静态网站源文件下载ipv6域名解析 做网站

静态网站源文件下载,ipv6域名解析 做网站,龙华网站建设yihe kj,近期国际新闻20条最近做一个需求#xff0c;各种业务消息都会往我的消息队列中写各种类型的数据#xff0c;服务端需要接受各种不同的参数然后转换为本地数据结构#xff0c;Go语言不确定上游传过来的数值是什么类型#xff0c;然后又下面四种解决方案。 1. 类型断言和类型切换 func (Mis…最近做一个需求各种业务消息都会往我的消息队列中写各种类型的数据服务端需要接受各种不同的参数然后转换为本地数据结构Go语言不确定上游传过来的数值是什么类型然后又下面四种解决方案。 1. 类型断言和类型切换 func (MissionEventHandler) Handle(ctx context.Context, message *kafka.Message) error {var raw map[string]interface{}err : json.Unmarshal(message.Value, raw)if err ! nil {// Handle errorreturn err}switch raw[event] {case mission.MISSION_EVENT_PAY_SUCCESS:uid, ok1 : raw[uid].(string)time, ok2 : raw[time].(string)num, ok3 : raw[num].(float64) // JSON numbers are float64 by defaultif !ok1 || !ok2 || !ok3 {// Handle type assertion errorreturn errors.New(type assertion failed)}// Handle the event// ...// Add cases for other event typesdefault:// Handle unknown event}return nil }2. 结构体组合 type Event struct {Event string json:event }type PaySuccessEvent struct {EventUID string json:uidTime string json:timeNum int json:num }// ... Define other specific event structsfunc (MissionEventHandler) Handle(ctx context.Context, message *kafka.Message) error {var baseEvent Eventerr : json.Unmarshal(message.Value, baseEvent)if err ! nil {// Handle errorreturn err}switch baseEvent.Event {case mission.MISSION_EVENT_PAY_SUCCESS:var paySuccessEvent PaySuccessEventerr : json.Unmarshal(message.Value, paySuccessEvent)if err ! nil {// Handle errorreturn err}// Handle the event// ...// Add cases for other event typesdefault:// Handle unknown event}return nil }3. 使用 json.RawMessage type GenericEvent struct {Event string json:eventData json.RawMessage json:data }func (MissionEventHandler) Handle(ctx context.Context, message *kafka.Message) error {var genericEvent GenericEventerr : json.Unmarshal(message.Value, genericEvent)if err ! nil {// Handle errorreturn err}switch genericEvent.Event {case mission.MISSION_EVENT_PAY_SUCCESS:var paySuccessEvent PaySuccessEventerr : json.Unmarshal(genericEvent.Data, paySuccessEvent)if err ! nil {// Handle errorreturn err}// Handle the event// ...// Add cases for other event typesdefault:// Handle unknown event}return nil }4. 使用 map[string]interface{} 和反射 import (reflectencoding/json )func (MissionEventHandler) Handle(ctx context.Context, message *kafka.Message) error {var raw map[string]interface{}err : json.Unmarshal(message.Value, raw)if err ! nil {// Handle errorreturn err}switch raw[event] {case mission.MISSION_EVENT_PAY_SUCCESS:paySuccessEvent : reflect.New(reflect.TypeOf(PaySuccessEvent{})).Interface()err : mapstructure.Decode(raw, paySuccessEvent)if err ! nil {// Handle errorreturn err}// Handle the event// ...// Add cases for other event typesdefault:// Handle unknown event}return nil }在第四种方法中使用了mapstructure库可以将通用的map值解码到相应的结构体中。
http://www.w-s-a.com/news/830143/

相关文章:

  • 上海建设网站制作东西湖建设局网站
  • 建设购物网站课程设计建设部领导干部官方网站
  • 沈阳企业制作网站北京两学一做网站
  • 郑州做营销型网站手机网站建设多少钱一个
  • 小说类网站程序外贸商城 wordpress
  • 喀什百度做网站多少钱wordpress 用户介绍
  • 专门做任务的网站手机端网站重构
  • 深圳专业设计网站公司国际网站建设经验
  • 网站产品页排名怎么做网站备案起名要求
  • 成都企业网站建设及公司ppt生活分类信息网站大全
  • 免费企业网站源码下载学服装设计需要什么条件
  • 淘宝网站开发方式深圳平面设计公司排名榜
  • 品牌网站建设收费情况登陆页面模板
  • 十大免费cms建站系统介绍科技网站欣赏
  • 自学做网站需要多久semir是什么品牌
  • 南通网站搜索引擎优化网站首页seo关键词布局
  • 东莞市国外网站建设多少钱wordpress 多媒体插件
  • c2c商城网站建设公司做水果生意去哪个网站
  • 做网站服务器有哪些电子商务网站建立
  • 网站开发的具体流程原材料价格查询网站
  • 深圳响应式网站建设深圳网站建设定制开发 超凡科技
  • 网站建设报价怎么差别那么大wordpress产品属性搭配
  • 高校网站建设情况报告范文pc建站网站
  • 做网站美工要学什么广东省建设厅网站首页
  • 深圳网站设计十年乐云seo网站建设 竞赛 方案
  • 新乡移动网站建设wordpress输出某一分类的文章
  • 花店网站开发设计的项目结构重庆网站建设培训班
  • 做网站的技术体系投资者互动平台官网
  • 北京网站建设公司哪家实惠企查查在线查询入口
  • 毕业设计做网站怎么样非微信官方网页自己做的网站