|
12345678910111213141516171819202122232425262728293031323334353637 |
- package utils
-
- import (
- "bytes"
- "encoding/json"
- "regexp"
- )
-
- func JsonMarshal(interface{}) {
-
- }
-
- // 不科学计数法
- func JsonDecode(data []byte, v interface{}) error {
- d := json.NewDecoder(bytes.NewReader(data))
- d.UseNumber()
- return d.Decode(v)
- }
-
- // json字符串驼峰命名格式 转为 下划线命名格式
- // c :json字符串
- func MarshalJSONCamelCase2JsonSnakeCase(c string) []byte {
- // Regexp definitions
- var keyMatchRegex = regexp.MustCompile(`\"(\w+)\":`)
- var wordBarrierRegex = regexp.MustCompile(`(\w)([A-Z])`)
- marshalled := []byte(c)
- converted := keyMatchRegex.ReplaceAllFunc(
- marshalled,
- func(match []byte) []byte {
- return bytes.ToLower(wordBarrierRegex.ReplaceAll(
- match,
- []byte(`${1}_${2}`),
- ))
- },
- )
- return converted
- }
|