MCPcopy Create free account
hub / github.com/dolthub/doltgresql / DecodeJSON

Function DecodeJSON

postgres/parser/json/encode.go:203–224  ·  view source on GitHub ↗

DecodeJSON decodes a value encoded with EncodeJSON.

(b []byte)

Source from the content-addressed store, hash-verified

201
202// DecodeJSON decodes a value encoded with EncodeJSON.
203func DecodeJSON(b []byte) ([]byte, JSON, error) {
204 b, containerHeader, err := encoding.DecodeUint32Ascending(b)
205 if err != nil {
206 return b, nil, err
207 }
208 switch containerHeader & containerHeaderTypeMask {
209 case scalarContainerTag:
210 var entry jEntry
211 var err error
212 b, entry, err = decodeJEntry(b, 0)
213 if err != nil {
214 return b, nil, err
215 }
216 return decodeJSONValue(entry, b)
217 case arrayContainerTag:
218 return decodeJSONArray(containerHeader, b)
219 case objectContainerTag:
220 return decodeJSONObject(containerHeader, b)
221 }
222 return b, nil, errors.AssertionFailedf(
223 "error decoding JSON value, header: %x", errors.Safe(containerHeader))
224}
225
226// FromEncoding returns a JSON value which is lazily decoded.
227func FromEncoding(b []byte) (JSON, error) {

Callers 2

decodeMethod · 0.85
decodeJSONValueFunction · 0.85

Calls 5

DecodeUint32AscendingFunction · 0.92
decodeJEntryFunction · 0.85
decodeJSONValueFunction · 0.85
decodeJSONArrayFunction · 0.85
decodeJSONObjectFunction · 0.85

Tested by

no test coverage detected