Amazon.DynamoDBv2.DocumentModel.JsonUtils.WriteJson C# (CSharp) Метод

WriteJson() приватный статический Метод

private static WriteJson ( Amazon.DynamoDBv2.DocumentModel.DynamoDBEntry entry, JsonWriter writer, DynamoDBEntryConversion conversion ) : void
entry Amazon.DynamoDBv2.DocumentModel.DynamoDBEntry
writer ThirdParty.Json.LitJson.JsonWriter
conversion DynamoDBEntryConversion
Результат void
        private static void WriteJson(DynamoDBEntry entry, JsonWriter writer, DynamoDBEntryConversion conversion)
        {
            entry = entry.ToConvertedEntry(conversion);

            var document = entry as Document;
            if (document != null)
            {
                writer.WriteObjectStart();

                // Both item attributes and entries in M type are unordered, so sorting by key
                // http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes
                foreach (var kvp in document)
                {
                    var name = kvp.Key;
                    var value = kvp.Value;

                    writer.WritePropertyName(name);
                    WriteJson(value, writer, conversion);
                }
                writer.WriteObjectEnd();
                return;
            }

            var primitive = entry as Primitive;
            if (primitive != null)
            {
                var type = primitive.Type;
                var value = primitive.Value;
                WritePrimitive(writer, type, value);
                return;
            }

            var primitiveList = entry as PrimitiveList;
            if (primitiveList != null)
            {
                var itemType = primitiveList.Type;

                writer.WriteArrayStart();
                foreach (var item in primitiveList.Entries)
                {
                    var itemValue = item.Value;
                    WritePrimitive(writer, itemType, itemValue);
                }
                writer.WriteArrayEnd();
                return;
            }

            var ddbList = entry as DynamoDBList;
            if (ddbList != null)
            {
                writer.WriteArrayStart();
                foreach(var item in ddbList.Entries)
                {
                    WriteJson(item, writer, conversion);
                }
                writer.WriteArrayEnd();
                return;
            }

            var ddbBool = entry as DynamoDBBool;
            if (ddbBool != null)
            {
                writer.Write(ddbBool.Value);
                return;
            }

            var ddbNull = entry as DynamoDBNull;
            if (ddbNull != null)
            {
                writer.Write(null);
                return;
            }

            throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture,
                "Unable to convert entry of type {0} to JSON", entry.GetType().FullName));
        }

Usage Example

Пример #1
0
        private static string SerializeEnumerable(IEnumerable <Document> documents, bool prettyPrint)
        {
            var sb     = new StringBuilder();
            var writer = new JsonWriter(sb);

            writer.PrettyPrint = prettyPrint;

            writer.WriteArrayStart();
            if (documents != null)
            {
                foreach (var document in documents)
                {
                    if (document != null)
                    {
                        JsonUtils.WriteJson(document, writer, DynamoDBEntryConversion.V2);
                    }
                }
            }
            writer.WriteArrayEnd();

            var jsonText = sb.ToString();

            return(jsonText);
        }