diff --git a/env/object.go b/env/object.go index ae93707d..6e1c2dee 100644 --- a/env/object.go +++ b/env/object.go @@ -1873,6 +1873,8 @@ func NewListFromSeries(block TSeries) List { data[i] = k.Value case List: data[i] = k + case Dict: + data[i] = k } } return List{data, Word{0}} diff --git a/evaldo/builtins_json.go b/evaldo/builtins_json.go index 62d5d402..8cde07fe 100644 --- a/evaldo/builtins_json.go +++ b/evaldo/builtins_json.go @@ -59,6 +59,8 @@ func RyeToJSON(res any) string { return strconv.Itoa(int(v.Value)) case env.Decimal: return strconv.Itoa(int(v.Value)) + case env.List: + return ListToJSON(v) case env.Dict: return DictToJSON(v) case env.Spreadsheet: @@ -129,6 +131,20 @@ func EscapeJson(val string) string { return res } +// Inspect returns a string representation of the Integer. +func ListToJSON(list env.List) string { + var bu strings.Builder + bu.WriteString("[") + for i, val := range list.Data { + if i > 0 { + bu.WriteString(", ") + } + bu.WriteString(RyeToJSON(val)) + } + bu.WriteString("] ") + return bu.String() +} + // Inspect returns a string representation of the Integer. func DictToJSON(dict env.Dict) string { var bu strings.Builder