| 400 | } |
| 401 | |
| 402 | func (e encoder) arrayKeyEncoder() func(string, int) string { |
| 403 | var keyFn func(string, int) string |
| 404 | switch e.arrayFmt { |
| 405 | case "comma", "repeat": |
| 406 | keyFn = func(k string, _ int) string { return k } |
| 407 | case "brackets": |
| 408 | keyFn = func(key string, _ int) string { return key + "[]" } |
| 409 | case "indices:dots": |
| 410 | keyFn = func(k string, i int) string { |
| 411 | if k == "" { |
| 412 | return strconv.Itoa(i) |
| 413 | } |
| 414 | return k + "." + strconv.Itoa(i) |
| 415 | } |
| 416 | case "indices:brackets": |
| 417 | keyFn = func(k string, i int) string { |
| 418 | if k == "" { |
| 419 | return strconv.Itoa(i) |
| 420 | } |
| 421 | return k + "[" + strconv.Itoa(i) + "]" |
| 422 | } |
| 423 | } |
| 424 | return keyFn |
| 425 | } |
| 426 | |
| 427 | func (e encoder) objKeyEncoder(parent string) func(string) string { |
| 428 | if parent == "" { |