in Libraries/src/Amazon.Lambda.DynamoDBEvents/ExtensionMethods.cs [83:159]
private static void WriteJsonValue(Utf8JsonWriter writer, AttributeValue attribute)
{
if (attribute.S != null)
{
writer.WriteStringValue(attribute.S);
}
else if (attribute.N != null)
{
#if NETCOREAPP3_1 // WriteRawValue was added in .NET 6, but we need to write out Number values without quotes
using var document = JsonDocument.Parse(attribute.N);
document.WriteTo(writer);
#else
writer.WriteRawValue(attribute.N);
#endif
}
else if (attribute.B != null)
{
writer.WriteBase64StringValue(attribute.B.ToArray());
}
else if (attribute.BOOL != null)
{
writer.WriteBooleanValue(attribute.BOOL.Value);
}
else if (attribute.NULL != null)
{
writer.WriteNullValue();
}
else if (attribute.M != null)
{
WriteJson(writer, attribute.M);
}
else if (attribute.L != null)
{
writer.WriteStartArray();
foreach (var item in attribute.L)
{
WriteJsonValue(writer, item);
}
writer.WriteEndArray();
}
else if (attribute.SS != null)
{
writer.WriteStartArray();
foreach (var item in attribute.SS)
{
writer.WriteStringValue(item);
}
writer.WriteEndArray();
}
else if (attribute.NS != null)
{
writer.WriteStartArray();
foreach (var item in attribute.NS)
{
#if NETCOREAPP3_1 // WriteRawValue was added in .NET 6, but we need to write out Number values without quotes
using var document = JsonDocument.Parse(item);
document.WriteTo(writer);
#else
writer.WriteRawValue(item);
#endif
}
writer.WriteEndArray();
}
else if (attribute.BS != null)
{
writer.WriteStartArray();
foreach (var item in attribute.BS)
{
writer.WriteBase64StringValue(item.ToArray());
}
writer.WriteEndArray();
}
else
{
writer.WriteNullValue();
}
}