예제 #1
0
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            DbGeography geo = value as DbGeography;

            if (geo == null)
            {
                throw new ArgumentException("Parameter is not a DbGeography", "value");
            }
            writer.WriteStartObject();
            writer.WritePropertyName("Lon");
            writer.WriteValue(geo.Longitude);
            writer.WritePropertyName("Lat");
            writer.WriteValue(geo.Latitude);
            writer.WriteEndObject();
        }
예제 #2
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            writer.WriteStartObject();

            var attributes = (Attribute[])value;

            if (attributes != null && attributes.Length > 0)
            {
                foreach (var att in attributes)
                {
                    writer.WritePropertyName(AttributeKeyCache.Cache.KeyToString(att.Key));
                    writer.WriteValue(att.RawValue ?? att.Value);
                }
            }
            writer.WriteEndObject();
        }
예제 #3
0
        protected void WriteJson(Newtonsoft.Json.JsonConverter converter, object value, Newtonsoft.Json.JsonWriter writer, bool mustBeNested = false)
        {
            if (mustBeNested)
            {
                writer.WriteStartObject();
                writer.WritePropertyName("x");
            }

            var serializer = CreatedConfiguredNewtonsoftJsonSerializer();

            converter.WriteJson(writer, value, serializer);

            if (mustBeNested)
            {
                writer.WriteEndObject();
            }
        }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            var catEntry = value as CatalogEntry;

            if (catEntry != null)
            {
                writer.WriteStartObject();
                writer.WritePropertyName("key");
                writer.WriteValue(catEntry.Key);

                if (catEntry.Attributes.Length > 0)
                {
                    writer.WritePropertyName("attributes");
                    serializer.Serialize(writer, catEntry.Attributes);
                }
                writer.WriteEndObject();
            }
        }
예제 #5
0
 public void WriteToJson(Newtonsoft.Json.JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("bones");
     writer.WriteStartArray();
     foreach (Bone b in this.Bones)
     {
         b.WriteToJson(writer);
     }
     writer.WriteEndArray();
     writer.WritePropertyName("ragdollPose");
     writer.WriteValue(this.RagdollPose);
     writer.WritePropertyName("enterAudio");
     writer.WriteValue(this.EnterAudio);
     writer.WritePropertyName("exitAudio");
     writer.WriteValue(this.ExitAudio);
     writer.WriteEndObject();
 }
예제 #6
0
            /// <summary>Writes the JSON representation of the object.</summary>
            /// <param name="writer">The <see cref="T:Newtonsoft.Json.JsonWriter" /> to write to.</param>
            /// <param name="value">The value.</param>
            /// <param name="serializer">The calling serializer.</param>
            public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value,
                                           Newtonsoft.Json.JsonSerializer serializer)
            {
                writer.WriteStartObject();

                var ni = (NetworkInterfaceInternal)value;

                foreach (var propName in PropertyNames.GetAllNames())
                {
                    object propValue = null;
                    if (propName == PropertyNames.Description)
                    {
                        propValue = ni.Description;
                    }
                    else if (propName == PropertyNames.Id)
                    {
                        propValue = ni.Id;
                    }
                    else if (propName == PropertyNames.InterfaceType)
                    {
                        propValue = ni.InterfaceType;
                    }
                    else if (propName == PropertyNames.MacAddress)
                    {
                        propValue = ni.MacAddress;
                    }
                    else if (propName == PropertyNames.Name)
                    {
                        propValue = ni.Name;
                    }
                    else if (propName == PropertyNames.PhysicalAddress)
                    {
                        propValue = ni.PhysicalAddress;
                    }

                    if (propValue != null)
                    {
                        writer.WritePropertyName(propName);
                        writer.WriteValue(propValue);
                    }
                }

                writer.WriteEndObject();
            }
        public override void WriteValue(object Value, Newtonsoft.Json.JsonWriter Writer, MudObject Owner)
        {
            var contents = Value as Dictionary <String, Object>;

            if (contents == null)
            {
                throw new InvalidOperationException();
            }

            Writer.WriteStartObject();

            foreach (var pair in contents)
            {
                Writer.WritePropertyName(pair.Key);
                PersistAttribute._WriteValue(pair.Value, Writer, Owner);
            }

            Writer.WriteEndObject();
        }
예제 #8
0
            public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
            {
                NodeState NodeStateFlags = (NodeState)value;

                //Newtonsoft.Json.JsonConvert.SerializeObject

                writer.WriteStartObject();

                //foreach (NodeState CurrentFlag in Enum.GetValues(NodeStateFlags.GetType()))
                foreach (NodeState CurrentFlag in Enum.GetValues(typeof(NodeState)))
                {
                    if ((NodeStateFlags & CurrentFlag) != 0) // if (name.HasFlag(val))
                    {
                        writer.WritePropertyName(CurrentFlag.ToString());
                        serializer.Serialize(writer, "true");
                    } // End if( (NodeStateFlags & CurrentFlag) != 0)
                }     // Next CurrentFlag

                writer.WriteEndObject();
            } // End Sub WriteJson
예제 #9
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object dataTable,
                                       Newtonsoft.Json.JsonSerializer serializer)
        {
            System.Data.DataTable table     = dataTable as System.Data.DataTable;
            DataRowConverter      converter = new DataRowConverter();

            writer.WriteStartObject();

            writer.WritePropertyName("Rows");
            writer.WriteStartArray();

            foreach (System.Data.DataRow row in table.Rows)
            {
                converter.WriteJson(writer, row, serializer);
            }

            writer.WriteEndArray();
            writer.WriteEndObject();

            converter = null;
        }
예제 #10
0
        public static void CustomSerialization(Dictionary <string, object> dict, Newtonsoft.Json.JsonWriter jsonWriter)
        {
            jsonWriter.WriteStartObject();
            foreach (var dictKey in dict.Keys)
            {
                var val = dict[dictKey];

                if (_customTypes.Contains(val.GetType()))
                {
                    // 可以写入的类型
                    jsonWriter.WritePropertyName(dictKey);
                    WriteValue(jsonWriter, val);
                }
                else if (val is Dictionary <string, object> subDic)
                {
                    jsonWriter.WritePropertyName(dictKey);
                    CustomSerialization(subDic, jsonWriter);
                }
            }
            jsonWriter.WriteEndObject();
        }
예제 #11
0
        public static void WriteJson(this Newtonsoft.Json.JsonWriter writer, Neo.IO.Json.JObject json)
        {
            switch (json)
            {
            case null:
                writer.WriteNull();
                break;

            case Neo.IO.Json.JBoolean boolean:
                writer.WriteValue(boolean.Value);
                break;

            case Neo.IO.Json.JNumber number:
                writer.WriteValue(number.Value);
                break;

            case Neo.IO.Json.JString @string:
                writer.WriteValue(@string.Value);
                break;

            case Neo.IO.Json.JArray @array:
                writer.WriteStartArray();
                foreach (var value in @array)
                {
                    WriteJson(writer, value);
                }
                writer.WriteEndArray();
                break;

            case Neo.IO.Json.JObject @object:
                writer.WriteStartObject();
                foreach (var(key, value) in @object.Properties)
                {
                    writer.WritePropertyName(key);
                    WriteJson(writer, value);
                }
                writer.WriteEndObject();
                break;
            }
        }
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            var definition = value as AbstractAttributeDefinition;

            if (definition != null)
            {
                writer.WriteStartObject();

                writer.WritePropertyName("key");
                writer.WriteValue(definition.Key);
                writer.WritePropertyName("description");
                writer.WriteValue(definition.Description);

                var attributeDef = definition as AttributeDefinition;
                if (attributeDef != null)
                {
                    if (attributeDef.LengthSpecified)
                    {
                        writer.WritePropertyName("length");
                        writer.WriteValue(attributeDef.Length);
                    }
                    writer.WritePropertyName("type");
                    serializer.Serialize(writer, attributeDef.Type);
                    writer.WritePropertyName("definitionType");
                    writer.WriteValue("AttributeDefinition");
                }

                var catalogDef = definition as CatalogAttributeDefinition;
                if (catalogDef != null)
                {
                    writer.WritePropertyName("catalog");
                    writer.WriteValue(catalogDef.Catalog);
                    writer.WritePropertyName("definitionType");
                    writer.WriteValue("CatalogAttributeDefinition");
                }

                writer.WriteEndObject();
            }
        }
예제 #13
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer
                                       , object dataRow
                                       , Newtonsoft.Json.JsonSerializer serializer)
        {
            System.Data.DataRow row = dataRow as System.Data.DataRow;

            writer.WriteStartObject();
            foreach (System.Data.DataColumn column in row.Table.Columns)
            {
                writer.WritePropertyName(column.ColumnName);

                if (row[column] == System.DBNull.Value)
                {
                    serializer.Serialize(writer, null);
                }
                else
                {
                    serializer.Serialize(writer, row[column]);
                }
            }
            writer.WriteEndObject();
        }
예제 #14
0
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object dataset,
                                       Newtonsoft.Json.JsonSerializer serializer)
        {
            System.Data.DataSet dataSet = dataset as System.Data.DataSet;

            DataTableConverter converter = new DataTableConverter();

            writer.WriteStartObject();

            writer.WritePropertyName("Tables");
            writer.WriteStartArray();

            foreach (System.Data.DataTable table in dataSet.Tables)
            {
                converter.WriteJson(writer, table, serializer);
            }

            writer.WriteEndArray();
            writer.WriteEndObject();

            converter = null;
        }
예제 #15
0
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            writer.WriteStartObject();

            // Write properties.
            var propertyInfos = value.GetType().GetProperties();

            foreach (var propertyInfo in propertyInfos)
            {
                // Skip the Versions property.
                if (propertyInfo.Name == "Versions")
                {
                    continue;
                }

                writer.WritePropertyName(propertyInfo.Name);
                var propertyValue = propertyInfo.GetValue(value, BindingFlags.GetProperty, null, null, null);
                serializer.Serialize(writer, propertyValue);
            }

            writer.WriteEndObject();
        }
예제 #16
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            var catalogue = (Catalog)value;

            if (catalogue.Uuid != Guid.Empty)
            {
                writer.WriteStartObject();

                writer.WritePropertyName("uuid");
                writer.WriteValue(catalogue.Uuid);

                if (!String.IsNullOrEmpty(catalogue.Name))
                {
                    writer.WritePropertyName("name");
                    writer.WriteValue(catalogue.Name);
                }

                if (catalogue.ValidAttributes.Length > 0)
                {
                    writer.WritePropertyName("validAttributes");
                    writer.WriteStartArray();
                    foreach (var att in catalogue.ValidAttributes)
                    {
                        writer.WriteValue(att);
                    }
                    writer.WriteEndArray();
                }

                if (catalogue.CatalogEntries.Length > 0)
                {
                    writer.WritePropertyName("catalogueEntries");
                    serializer.Serialize(writer, catalogue.CatalogEntries);
                }

                writer.WriteEndObject();
            }
        }
예제 #17
0
        public static void ToJson(Newtonsoft.Json.JsonWriter jsonWriter, Cohort cohort)
        {
            Action <Newtonsoft.Json.JsonWriter, uint> WriteUInt = (jsonWriter2, value) =>
            {
                Madingley.Serialization.Common.Writer.WriteInt(jsonWriter2, (int)value);
            };

            jsonWriter.WriteStartObject();
            Madingley.Serialization.Common.Writer.PropertyInt(jsonWriter, "_BirthTimeStep", (int)cohort._BirthTimeStep);
            Madingley.Serialization.Common.Writer.PropertyInt(jsonWriter, "_MaturityTimeStep", (int)cohort._MaturityTimeStep);
            Madingley.Serialization.Common.Writer.PropertyInlineArray(jsonWriter, "_CohortID", cohort._CohortID, WriteUInt);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_JuvenileMass", cohort._JuvenileMass);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_AdultMass", cohort._AdultMass);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_IndividualBodyMass", cohort._IndividualBodyMass);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_IndividualReproductivePotentialMass", cohort._IndividualReproductivePotentialMass);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_MaximumAchievedBodyMass", cohort._MaximumAchievedBodyMass);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_CohortAbundance", cohort._CohortAbundance);
            Madingley.Serialization.Common.Writer.PropertyInt(jsonWriter, "_FunctionalGroupIndex", cohort._FunctionalGroupIndex);
            Madingley.Serialization.Common.Writer.PropertyBoolean(jsonWriter, "_Merged", cohort._Merged);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_ProportionTimeActive", cohort._ProportionTimeActive);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_TrophicIndex", cohort._TrophicIndex);
            Madingley.Serialization.Common.Writer.PropertyDouble(jsonWriter, "_LogOptimalPreyBodySizeRatio", cohort._LogOptimalPreyBodySizeRatio);
            jsonWriter.WriteEndObject();
        }
예제 #18
0
 public void WriteToJson(Newtonsoft.Json.JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WriteEndObject();
 }
예제 #19
0
        public void Write(Newtonsoft.Json.JsonWriter writer, object value)
        {
            var grid = (TileData[, , ])value;

            int w = grid.GetLength(2);
            int h = grid.GetLength(1);
            int d = grid.GetLength(0);

            writer.WriteStartObject();

            writer.WritePropertyName("Width");
            writer.WriteValue(w);
            writer.WritePropertyName("Height");
            writer.WriteValue(h);
            writer.WritePropertyName("Depth");
            writer.WriteValue(d);

            writer.WritePropertyName("TileData");
            writer.WriteStartArray();

            var queue = new BlockingCollection <Tuple <int, byte[]> >();

            var writerTask = Task.Factory.StartNew(() =>
            {
                foreach (var tuple in queue.GetConsumingEnumerable())
                {
                    writer.WriteValue(tuple.Item1);
                    writer.WriteValue(tuple.Item2);
                }
            });

            Parallel.For(0, d, z =>
            {
                using (var memStream = new MemoryStream())
                {
                    using (var compressStream = new DeflateStream(memStream, CompressionMode.Compress, true))
                        using (var bufferedStream = new BufferedStream(compressStream))
                            using (var streamWriter = new BinaryWriter(bufferedStream))
                            {
                                var srcArr = grid;

                                for (int y = 0; y < h; ++y)
                                {
                                    for (int x = 0; x < w; ++x)
                                    {
                                        streamWriter.Write(srcArr[z, y, x].Raw);
                                    }
                                }
                            }

                    queue.Add(new Tuple <int, byte[]>(z, memStream.ToArray()));
                }
            });

            queue.CompleteAdding();

            writerTask.Wait();

            writer.WriteEndArray();
            writer.WriteEndObject();
        }
예제 #20
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            var configuration = value as Configuration;

            if (configuration != null)
            {
                writer.WriteStartObject();

                if (configuration.PartAttributes.Length > 0)
                {
                    writer.WritePropertyName("partAttributes");
                    writer.WriteStartArray();
                    foreach (var att in configuration.PartAttributes)
                    {
                        serializer.Serialize(writer, att);
                    }
                    writer.WriteEndArray();
                }

                if (configuration.CharacteristicAttributes.Length > 0)
                {
                    writer.WritePropertyName("characteristicAttributes");
                    writer.WriteStartArray();
                    foreach (var att in configuration.CharacteristicAttributes)
                    {
                        serializer.Serialize(writer, att);
                    }
                    writer.WriteEndArray();
                }

                if (configuration.MeasurementAttributes.Length > 0)
                {
                    writer.WritePropertyName("measurementAttributes");
                    writer.WriteStartArray();
                    foreach (var att in configuration.MeasurementAttributes)
                    {
                        serializer.Serialize(writer, att);
                    }
                    writer.WriteEndArray();
                }

                if (configuration.ValueAttributes.Length > 0)
                {
                    writer.WritePropertyName("valueAttributes");
                    writer.WriteStartArray();
                    foreach (var att in configuration.ValueAttributes)
                    {
                        serializer.Serialize(writer, att);
                    }
                    writer.WriteEndArray();
                }

                if (configuration.CatalogAttributes.Length > 0)
                {
                    writer.WritePropertyName("catalogAttributes");
                    writer.WriteStartArray();
                    foreach (var att in configuration.CatalogAttributes)
                    {
                        serializer.Serialize(writer, att);
                    }
                    writer.WriteEndArray();
                }

                writer.WriteEndObject();
            }
        }
예제 #21
0
 public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
 {
     writer.WriteStartObject();
     serialize(value, (JsonWriter)writer);
     writer.WriteEndObject();
 }
 public void WriteStartObject()
 {
     _jsonWriter.WriteStartObject();
 }