2 回答
TA贡献1995条经验 获得超2个赞
这是一种方法:
var f interface{}
err := json.Unmarshal(b, &f)
f = lower(f)
其中较低的是:
func lower(f interface{}) interface{} {
switch f := f.(type) {
case []interface{}:
for i := range f {
f[i] = lower(f[i])
}
return f
case map[string]interface{}:
lf := make(map[string]interface{}, len(f))
for k, v := range f {
lf[strings.ToLower(k)] = lower(v)
}
return lf
default:
return f
}
}
该函数lower是递归的,用于处理嵌套 JSON 对象的键转换。
操场
如果您知道您正在处理一个没有嵌套的对象,那么您可以从lower以下位置内联地图案例:
var f map[string]interface{}
err := json.Unmarshal(b, &f)
lf := make(map[string]interface{}, len(f))
for k, v := range f {
lf[strings.ToLower(k)] = v
}
f = lf
TA贡献1860条经验 获得超9个赞
将map[string]interface{}如此检查它并简单地将键转换为小写。
var f map[string]interface{}
...
converted := make(map[string]interface{}, len(f))
for k, v := range f {
converted[strings.ToLower(k)] = v
}
- 2 回答
- 0 关注
- 168 浏览
添加回答
举报