parseArrayValue processes JSON value inside array.
(tok []byte)
| 122 | |
| 123 | // parseArrayValue processes JSON value inside array. |
| 124 | func (p *fastJSONParser) parseArrayValue(tok []byte) (JSON, error) { |
| 125 | switch tok[0] { |
| 126 | case tokenizer.ArrayEnd: |
| 127 | return p.buildArray() |
| 128 | case tokenizer.ArrayStart: |
| 129 | p.pushArray() |
| 130 | case tokenizer.ObjectStart: |
| 131 | p.pushObject() |
| 132 | case tokenizer.Null: |
| 133 | p.addArrayValue(NullJSONValue) |
| 134 | case tokenizer.String: |
| 135 | p.addArrayValue(jsonString(tok[1 : len(tok)-1])) |
| 136 | case tokenizer.True: |
| 137 | p.addArrayValue(TrueJSONValue) |
| 138 | case tokenizer.False: |
| 139 | p.addArrayValue(FalseJSONValue) |
| 140 | case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': |
| 141 | n, err := FromNumber(json.Number(tok)) |
| 142 | if err != nil { |
| 143 | return n, err |
| 144 | } |
| 145 | p.addArrayValue(n) |
| 146 | default: |
| 147 | return nil, errors.Newf("unexpected array token %q", tok) |
| 148 | } |
| 149 | return nil, nil |
| 150 | } |
| 151 | |
| 152 | // parseObjectKey processes object key. |
| 153 | func (p *fastJSONParser) parseObjectKey(tok []byte) (JSON, error) { |
nothing calls this directly
no test coverage detected