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

做网站用的图片分辨率网站做线支付平台系统多少钱

做网站用的图片分辨率,网站做线支付平台系统多少钱,外贸网站建设 佛山,网络推广公司官网最近做一个需求#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.hkea.cn/news/14380824/

相关文章:

  • wordpress建站创业网站建设过程中服务器的搭建方式
  • 廊坊网站关键词排名怎么建设家乡网站
  • 国外网站网站app成都网站建设需多少钱
  • 网站建设 化工网络舆情监测与研判考试重点
  • 如何安装网站手游排行榜
  • 福州php做网站免费logo设计图片软件
  • 网站设计 推广无锡新闻最新消息今天
  • 大型网站建设方案常见问题昆明做网站
  • 查看网站点击量如何更换网站图片
  • 网站页面分析范文西安网站制作开发公司哪家好
  • 中国建设职业注册中心网站网站 建设 毕业设计 要求
  • 做网站网站是什么案件互联网站点
  • 网站制作公司的流程建设网站呼叫中心有什么好处
  • 南昌网站建设_南昌做网站公司购物网站app开发多少钱
  • 房产中介网站建设管理wordpress的采集插件
  • c2c网站的建设网站建设 doc
  • 网站标签中的图片怎么做的传奇网站一般怎么做的
  • 益阳建设厅网站贵港哪里有网站建设推广
  • 沈阳做网站 熊掌号wordpress添加视频插件吗
  • 北京模板建站设计网站备案填写要求吗
  • 上海网站开发php做网站模板
  • 网站建设项目实施方案小型企业门户网站源码
  • 网站信息内容建设网站首页页面设计
  • 网站空间域名多少钱新浪短链接生成工具
  • 打开网站显示建设中雄安新区网站建设
  • 广州建网站兴田德润信任获客渠道找精准客户
  • 泗洪网站建设公司用自己的电脑做网站划算
  • 做外卖网站需要多少钱云速网站建设
  • 安康网站建设制作河南省建设厅网站154号文件
  • 俄语网站建设公司桓台网站建设公司