MCPcopy
hub / github.com/aws/aws-lambda-go / MarshalJSON

Method MarshalJSON

events/attributevalue.go:268–326  ·  view source on GitHub ↗

MarshalJSON implements custom marshaling to be used by the standard json/encoding package

()

Source from the content-addressed store, hash-verified

266
267// MarshalJSON implements custom marshaling to be used by the standard json/encoding package
268func (av DynamoDBAttributeValue) MarshalJSON() ([]byte, error) {
269
270 var buff bytes.Buffer
271 var err error
272 var b []byte
273
274 switch av.dataType {
275 case DataTypeBinary:
276 buff.WriteString(`{ "B":`)
277 b, err = json.Marshal(av.value.([]byte))
278 buff.Write(b)
279
280 case DataTypeBoolean:
281 buff.WriteString(`{ "BOOL":`)
282 b, err = json.Marshal(av.value.(bool))
283 buff.Write(b)
284
285 case DataTypeBinarySet:
286 buff.WriteString(`{ "BS":`)
287 b, err = json.Marshal(av.value.([][]byte))
288 buff.Write(b)
289
290 case DataTypeList:
291 buff.WriteString(`{ "L":`)
292 b, err = json.Marshal(av.value.([]DynamoDBAttributeValue))
293 buff.Write(b)
294
295 case DataTypeMap:
296 buff.WriteString(`{ "M":`)
297 b, err = json.Marshal(av.value.(map[string]DynamoDBAttributeValue))
298 buff.Write(b)
299
300 case DataTypeNumber:
301 buff.WriteString(`{ "N":`)
302 b, err = json.Marshal(av.value.(string))
303 buff.Write(b)
304
305 case DataTypeNumberSet:
306 buff.WriteString(`{ "NS":`)
307 b, err = json.Marshal(av.value.([]string))
308 buff.Write(b)
309
310 case DataTypeNull:
311 buff.WriteString(`{ "NULL": true `)
312
313 case DataTypeString:
314 buff.WriteString(`{ "S":`)
315 b, err = json.Marshal(av.value.(string))
316 buff.Write(b)
317
318 case DataTypeStringSet:
319 buff.WriteString(`{ "SS":`)
320 b, err = json.Marshal(av.value.([]string))
321 buff.Write(b)
322 }
323
324 buff.WriteString(`}`)
325 return buff.Bytes(), err

Callers

nothing calls this directly

Calls 1

WriteMethod · 0.80

Tested by

no test coverage detected