Skip to content

Commit 13b98e4

Browse files
fix: Simplify jsonPathCSVValue
1 parent d584e34 commit 13b98e4

1 file changed

Lines changed: 9 additions & 43 deletions

File tree

  • internal/pkg/service/stream/mapping/table/column

internal/pkg/service/stream/mapping/table/column/renderer.go

Lines changed: 9 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -146,57 +146,23 @@ func (r *Renderer) jsonPathCSVValue(c Path, ctx recordctx.Context) (string, erro
146146
}
147147

148148
if resultErr == nil {
149-
// Optimize TypeObject to avoid json decode and re-encode.
150-
if value.Type() == fastjson.TypeObject {
151-
return value.GetObject().String(), nil
149+
if value.Type() == fastjson.TypeString && c.RawString {
150+
return string(value.GetStringBytes()), nil
152151
}
153152

154-
result, resultErr = r.getJSONValue(value)
153+
return value.String(), nil
155154
} else if c.DefaultValue != nil {
156155
result = *c.DefaultValue
157156
resultErr = nil
158-
}
159-
160-
if resultErr != nil {
161-
return "", resultErr
162-
}
163157

164-
if c.RawString {
165-
if stringValue, ok := result.(string); ok {
166-
return stringValue, nil
167-
}
168-
}
169-
170-
return json.EncodeString(result, false)
171-
}
172-
173-
func (r *Renderer) getJSONValue(value *fastjson.Value) (any, error) {
174-
switch value.Type() {
175-
case fastjson.TypeObject:
176-
var result any
177-
err := json.DecodeString(value.GetObject().String(), &result)
178-
return result, err
179-
case fastjson.TypeArray:
180-
result := []any{}
181-
for _, v := range value.GetArray() {
182-
jsonValue, err := r.getJSONValue(v)
183-
if err != nil {
184-
return nil, err
158+
if c.RawString {
159+
if stringValue, ok := result.(string); ok {
160+
return stringValue, nil
185161
}
186-
result = append(result, jsonValue)
187162
}
188-
return result, nil
189-
case fastjson.TypeString:
190-
return string(value.GetStringBytes()), nil
191-
case fastjson.TypeNumber:
192-
return value.GetFloat64(), nil
193-
case fastjson.TypeTrue:
194-
return true, nil
195-
case fastjson.TypeFalse:
196-
return false, nil
197-
case fastjson.TypeNull:
198-
return nil, nil
163+
164+
return json.EncodeString(result, false)
199165
}
200166

201-
return nil, errors.New("Unexpected fastjson type")
167+
return "", resultErr
202168
}

0 commit comments

Comments
 (0)