fleet/orbit/pkg/dataflatten/json.go
2023-11-01 20:11:35 -06:00

26 lines
529 B
Go

// based on github.com/kolide/launcher/pkg/osquery/tables
package dataflatten
import (
"encoding/json"
"fmt"
"os"
)
func JsonFile(file string, opts ...FlattenOpts) ([]Row, error) {
rawdata, err := os.ReadFile(file)
if err != nil {
return nil, err
}
return Json(rawdata, opts...)
}
func Json(rawdata []byte, opts ...FlattenOpts) ([]Row, error) {
var data interface{}
if err := json.Unmarshal(rawdata, &data); err != nil {
return nil, fmt.Errorf("unmarshalling json: %w", err)
}
return Flatten(data, opts...)
}