var v any
err := json.Unmarshal(b, &v)
v = lower(v)
其中较低的是:
func lower(v any) any {
switch v := v.(type) {
case []any:
lv := make([]any, len(v))
for i := range v {
lv[i] = lower(v[i])
}
return lv
case map[string]any:
lv := make(map[string]any, len(v))
for mk, mv := range v {
lv[strings.ToLower(mk)] = mv
}
return lv
default:
return v
}
}
2条答案
按热度按时间q8l4jmvw1#
这里有一个方法可以做到这一点:
其中较低的是:
lower
函数递归地调用自身来处理嵌套JSON对象和数组中的键转换。playground
如果你知道你正在处理一个没有嵌套的对象(对象字段不包含数组或其他对象),那么你可以从上面的
lower
函数内联map case:wfauudbj2#
它将是
map[string]interface{}
,所以仔细检查一下,简单地将键转换为小写。