internal: FlattenJSON, flatten arrays as well

With HTTP JSON or Elasticsearch, one can also process values nested in arrays.
This commit is contained in:
Philip Silva
2016-01-12 12:12:49 +01:00
committed by Cameron Sparr
parent fb837ca66d
commit 3c89847489
4 changed files with 34 additions and 12 deletions

View File

@@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"os"
"strconv"
"strings"
"time"
)
@@ -49,9 +50,17 @@ func (f *JSONFlattener) FlattenJSON(
return err
}
}
case []interface{}:
for i, v := range t {
k := strconv.Itoa(i)
err := f.FlattenJSON(fieldname+"_"+k+"_", v)
if err != nil {
return nil
}
}
case float64:
f.Fields[fieldname] = t
case bool, string, []interface{}, nil:
case bool, string, nil:
// ignored types
return nil
default: