(dec *json.Decoder)
| 102 | } |
| 103 | |
| 104 | func (store Store) sliceFromJSONDecoder(dec *json.Decoder) ([]interface{}, error) { |
| 105 | var slice []interface{} |
| 106 | for { |
| 107 | t, err := dec.Token() |
| 108 | if err != nil { |
| 109 | return slice, err |
| 110 | } |
| 111 | if delim, ok := t.(json.Delim); ok && delim.String() == "]" { |
| 112 | return slice, nil |
| 113 | } else if ok && delim.String() == "{" { |
| 114 | item, err := store.treeBranchFromJSONDecoder(dec) |
| 115 | if err != nil { |
| 116 | return slice, err |
| 117 | } |
| 118 | slice = append(slice, item) |
| 119 | } else if ok && delim.String() == "[" { |
| 120 | item, err := store.sliceFromJSONDecoder(dec) |
| 121 | if err != nil { |
| 122 | return slice, err |
| 123 | } |
| 124 | slice = append(slice, item) |
| 125 | } else { |
| 126 | v, err := normalizeJSONNumber(t) |
| 127 | if err != nil { |
| 128 | return slice, err |
| 129 | } |
| 130 | slice = append(slice, v) |
| 131 | } |
| 132 | } |
| 133 | } |
| 134 | |
| 135 | // normalizeJSONNumber converts a json.Number scalar (produced because the |
| 136 | // decoder runs with UseNumber) into an int for integers within the int64 range |
no test coverage detected