Golang 使用 JSON 单个字段兼容多种类型

说明:

使用 Golang 解析 JSON 格式数据时,若以 interface{} 接收数字成员,则会按照下列规则进行解析,可见

    bool, for JSON booleans
 
    float64, for JSON numbers
 
    string, for JSON strings
 
    []interface{}, for JSON arrays
 
    map[string]interface{}, for JSON objects
 
    nil for JSON null
    interface{} for不明字段,直接声明为该类型

使用方式:

我们可以先根据如上说明类型进行声明,如字段的话,可以声明为interface{} ,待到具体逻辑处理时,根据具体类型进行判断。如一个字段可能为bool也可能为字符串,则可在逻辑编写时这样写:

	if data == false || data== "" {
		dashCmd.Refresh = 0
	} else {
		transRefreshString := data.(string)
		refreshString := transRefreshString[0 : len(transRefreshString)-1]
		refreshNumber, err := strconv.Atoi(refreshString)
		if err != nil {
			log.RemoteLogger().Warningf("the refresh value %v for dash %v convert failed!", data.Refresh, data.ID)
		}
	}

备注:

有问题欢迎加QQ群交流:728116314

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值