package helper func FlattenJSON(prefix string, input map[string]interface{}, output map[string]interface{}) { for key, value := range input { // Build the new key newKey := key if prefix != "" { newKey = prefix + "_" + key } // Check the type of value switch v := value.(type) { case map[string]interface{}: // If it's a nested JSON object, recursively flatten it FlattenJSON(newKey, v, output) default: // Otherwise, add it to the output map output[newKey] = v } } }