parseObjectValue processes object value.
(tok []byte)
| 164 | |
| 165 | // parseObjectValue processes object value. |
| 166 | func (p *fastJSONParser) parseObjectValue(tok []byte) (JSON, error) { |
| 167 | switch tok[0] { |
| 168 | case tokenizer.ArrayStart: |
| 169 | p.pushArray() |
| 170 | case tokenizer.ObjectStart: |
| 171 | p.pushObject() |
| 172 | case tokenizer.Null: |
| 173 | p.setObjectValue(NullJSONValue) |
| 174 | case tokenizer.String: |
| 175 | p.setObjectValue(jsonString(tok[1 : len(tok)-1])) |
| 176 | case tokenizer.True: |
| 177 | p.setObjectValue(TrueJSONValue) |
| 178 | case tokenizer.False: |
| 179 | p.setObjectValue(FalseJSONValue) |
| 180 | case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': |
| 181 | n, err := FromNumber(json.Number(tok)) |
| 182 | if err != nil { |
| 183 | return n, err |
| 184 | } |
| 185 | p.setObjectValue(n) |
| 186 | default: |
| 187 | return nil, errors.Newf("unexpected object token %q", tok) |
| 188 | } |
| 189 | return nil, nil |
| 190 | } |
| 191 | |
| 192 | type kind bool |
| 193 |
nothing calls this directly
no test coverage detected