func()

in encoder/json.go [206:236]


func (e *jsonEncoder) fixFieldTypes(res *types.CommonFormatEvent) (err error) {
	k := 0

	//Restore field types according to schema
	if e.inSchema != nil && res.Type != "schema" {
		var j int
		for i := 0; i < len(e.inSchema.Columns); i++ {
			if filteredField(e.filter, i, &j) {
				continue
			}

			if res.Fields != nil && i-j < len(*res.Fields) {
				f := &(*res.Fields)[i-j]
				f.Value, err = fixFieldType(f.Value, e.inSchema.Columns[i].DataType)
				if err != nil {
					return err
				}
			}

			if e.inSchema.Columns[i].Key == "PRI" && k < len(res.Key) {
				f := &res.Key[k]
				*f, err = fixFieldType(*f, e.inSchema.Columns[i].DataType)
				if err != nil {
					return err
				}
				k++
			}
		}
	}
	return nil
}