in azkustodata/query/v2/fast_json.go [202:248]
func decodeRow(
buffer []byte,
decoder *json.Decoder,
cols []query.Column) (value.Values, error) {
err := assertToken(decoder, json.Delim('['))
if err != nil {
return nil, err
}
values := make([]value.Kusto, 0, len(cols))
field := 0
for ; decoder.More(); field++ {
t, err := decoder.Token()
if err != nil {
return nil, err
}
// Handle nested values
if t == json.Delim('[') || t == json.Delim('{') {
t, err = decodeNestedValue(decoder, buffer)
if err != nil {
return nil, err
}
}
// Create a new value of the correct type
kustoValue := value.Default(cols[field].Type())
// Unmarshal the value
err = kustoValue.Unmarshal(t)
if err != nil {
return nil, err
}
values = append(values, kustoValue)
}
err = assertToken(decoder, json.Delim(']'))
if err != nil {
return nil, err
}
return values, nil
}