Ai
1 Star 0 Fork 0

cube-lab/tcb-openapi

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
const.go 1.68 KB
一键复制 编辑 原始数据 按行查看 历史
evansleiliu 提交于 2021-04-05 10:36 +08:00 . init
package util
import (
"bytes"
"encoding/binary"
"encoding/json"
"strconv"
)
type NumberInt int
func (n *NumberInt) MarshalJSON() ([]byte, error) {
buffer := bytes.NewBuffer([]byte{})
if err := binary.Write(buffer, binary.BigEndian, n); err != nil {
return nil, err
}
return buffer.Bytes(), nil
}
func (n *NumberInt) UnmarshalJSON(data []byte) (err error) {
wrapper := struct {
NumberInt string `json:"$numberInt"`
}{}
if err = json.Unmarshal(data, &wrapper); err != nil {
return
}
v, err := strconv.ParseInt(wrapper.NumberInt, 10, 64)
if err != nil {
return
}
*n = NumberInt(v)
return
}
type NumberDouble float64
func (n *NumberDouble) MarshalJSON() ([]byte, error) {
buffer := bytes.NewBuffer([]byte{})
if err := binary.Write(buffer, binary.BigEndian, n); err != nil {
return nil, err
}
return buffer.Bytes(), nil
}
func (n *NumberDouble) UnmarshalJSON(data []byte) (err error) {
wrapper := struct {
NumberDouble string `json:"$numberDouble"`
}{}
if err = json.Unmarshal(data, &wrapper); err != nil {
return
}
v, err := strconv.ParseFloat(wrapper.NumberDouble, 64)
if err != nil {
return
}
*n = NumberDouble(v)
return
}
type NumberLong int64
func (n *NumberLong) MarshalJSON() ([]byte, error) {
buffer := bytes.NewBuffer([]byte{})
if err := binary.Write(buffer, binary.BigEndian, n); err != nil {
return nil, err
}
return buffer.Bytes(), nil
}
func (n *NumberLong) UnmarshalJSON(data []byte) (err error) {
wrapper := struct {
NumberLong string `json:"$numberLong"`
}{}
if err = json.Unmarshal(data, &wrapper); err != nil {
return
}
v, err := strconv.ParseInt(wrapper.NumberLong, 10, 64)
if err != nil {
return
}
*n = NumberLong(v)
return
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/cubelab/tcb-openapi.git
git@gitee.com:cubelab/tcb-openapi.git
cubelab
tcb-openapi
tcb-openapi
41edef41dc45

搜索帮助