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

                var jObject = Newtonsoft.Json.Linq.JObject.FromObject(value, serializer);
                jObject.AddFirst(new Newtonsoft.Json.Linq.JProperty(_discriminator, GetSubtypeDiscriminator(value.GetType())));
                writer.WriteToken(jObject.CreateReader());
            }
            finally
            {
                _isWriting = false;
            }
        }
예제 #2
0
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
                return;
            }

            var enumerationType = value.GetType();


            var factory = ValueFromEnumeration.GetOrAdd(enumerationType, (_) => MakeFuncValueDelegate(enumerationType));

            writer.WriteValue(factory(value));
        }
예제 #3
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();
        }
예제 #4
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();
        }
예제 #5
0
 public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
 {
     if (value is DateTime)
     {
         var dt = (DateTime)value;
         writer.WriteStartConstructor("DateTime");
         writer.WriteValue(dt.Year);
         writer.WriteValue(dt.Month);
         writer.WriteValue(dt.Day);
         writer.WriteValue(dt.Hour);
         writer.WriteValue(dt.Minute);
         writer.WriteValue(dt.Second);
         writer.WriteValue(dt.Millisecond);
         writer.WriteEndConstructor();
     }
 }
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            var dr  = (DateRange)value;
            var val = "";

            if (dr.StartDate.HasValue)
            {
                val += GetUnixTicksString(dr.StartDate.Value);
            }
            val += "-";

            if (dr.EndDate.HasValue)
            {
                val += GetUnixTicksString(dr.EndDate.Value);
            }
            writer.WriteValue(val);
        }
예제 #7
0
 public void WriteToJson(Newtonsoft.Json.JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("audio");
     writer.WriteStartArray();
     foreach (string audioEvent in this.AudioEvents)
     {
         writer.WriteStartObject();
         writer.WritePropertyName("event");
         writer.WriteValue(audioEvent);
         writer.WriteEndObject();
     }
     writer.WriteEndArray();
     writer.WritePropertyName("guiLayout");
     writer.WriteValue(this.GuiLayout);
     writer.WriteEndObject();
 }
예제 #8
0
        protected override void WriteKeys(Newtonsoft.Json.JsonWriter writer)
        {
            if (DateStyle != FieldDateTimeStyle.Unspecified)
            {
                writer.WritePropertyName("dateStyle");
                writer.WriteValue(DateStyle.ToString());
            }

            if (TimeStyle != FieldDateTimeStyle.Unspecified)
            {
                writer.WritePropertyName("timeStyle");
                writer.WriteValue(TimeStyle.ToString());
            }

            writer.WritePropertyName("isRelative");
            writer.WriteValue(IsRelative);
        }
        /// <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();
            }
        }
예제 #10
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();
 }
예제 #11
0
            } // End Function ReadJson

            public override void WriteJson(Newtonsoft.Json.JsonWriter writer
                                           , object value
                                           , Newtonsoft.Json.JsonSerializer serializer)
            {
                if (!(value is System.IO.DirectoryInfo directoryInfo))
                {
                    throw new System.ArgumentOutOfRangeException(nameof(value));
                } // End if (!(value is DirectoryInfo directoryInfo))

                string dirName = directoryInfo.FullName.Substring(this.m_baseDirLength);

                if (System.IO.Path.DirectorySeparatorChar != '/')
                {
                    dirName = dirName.Replace(System.IO.Path.DirectorySeparatorChar, '/');
                }

                writer.WriteValue(dirName);
            } // End Sub WriteJson
예제 #12
0
    public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
    {
        var _olist = value as System.Collections.Generic.List <GadgetUnion>;

        if (_olist != null)
        {
            writer.WriteStartArray();
            foreach (var _o in _olist)
            {
                this.WriteJson(writer, _o, serializer);
            }
            writer.WriteEndArray();
        }
        else
        {
            this.WriteJson(writer, value as GadgetUnion, serializer);
        }
    }
예제 #13
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();
            }
예제 #14
0
 /// <inheritdoc/>
 public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
 {
     if (value == null)
     {
         writer.WriteNull();
     }
     else
     {
         var adapter = writer as BsonWriterAdapter;
         if (adapter != null)
         {
             adapter.WriteMaxKey();
         }
         else
         {
             WriteExtendedJson(writer);
         }
     }
 }
예제 #15
0
        /// <summary>
        /// 返回结果的存储过程
        /// </summary>
        /// <param name="strSql">任何SQL语句</param>
        /// <param name="parameters">参数值</param>
        /// <returns></returns>
        public override string ExecuteJson(string strSql, params DbParameter[] parameters)
        {
            try
            {
                DbCommand cmd = BuilderQueryCommand(strSql, parameters);

                System.IO.StringWriter     sw     = null;
                Newtonsoft.Json.JsonWriter writer = null;

                sw     = new System.IO.StringWriter();
                writer = new Newtonsoft.Json.JsonTextWriter(sw);

                writer.WriteStartArray();
                using (DbDataReader dr = cmd.ExecuteReader())
                {
                    do
                    {
                        while (dr.Read())
                        {
                            writer.WriteStartObject();
                            for (int i = 0; i < dr.FieldCount; i++)
                            {
                                writer.WritePropertyName(dr.GetName(i));
                                writer.WriteValue(Convert.ToString(dr[i]));
                            }
                            writer.WriteEndObject();
                        }
                    }while (dr.NextResult());
                }

                writer.WriteEndArray();
                writer.Flush();
                return(sw.GetStringBuilder().ToString());
            }
            catch (DbException ex)
            {
                throw ex;
            }
            catch
            {
                throw;
            }
        }
        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();
        }
예제 #17
0
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            throw new NotImplementedException("!!");
            // JToken t = JToken.FromObject(value);

            // if (t.Type != JTokenType.Object)
            // {
            //     t.WriteTo(writer);
            // }
            // else
            // {
            //     JObject o = (JObject)t;
            //     IList<string> propertyNames = o.Properties().Select(p => p.Name).ToList();

            //     o.AddFirst(new JProperty("Keys", new JArray(propertyNames)));

            //     o.WriteTo(writer);
            // }
        }
예제 #18
0
        public Document CombineWith(JObject jobj)
        {
            Newtonsoft.Json.JsonWriter jwriter = CreateWriter();
            IEnumerator <JToken>       en      = jobj.Children().GetEnumerator();

            while (en.MoveNext())
            {
                if (en.Current.Type != JTokenType.Property)
                {
                    throw new Json.JsonParseException("Property was expected.");
                }
                if (this[((JProperty)en.Current).Name] == null)
                {
                    Newtonsoft.Json.JsonConverter conv = new Newtonsoft.Json.Converters.KeyValuePairConverter();
                    en.Current.WriteTo(jwriter, new Newtonsoft.Json.JsonConverter[] { conv });
                }
            }

            return(this);
        }
예제 #19
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
예제 #20
0
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
            }
            else
            {
                var bsonInt32 = (BsonInt32)value;

                var adapter = writer as BsonWriterAdapter;
                if (adapter != null)
                {
                    adapter.WriteInt32(bsonInt32.Value);
                }
                else
                {
                    writer.WriteValue((long)bsonInt32.Value);
                }
            }
        }
예제 #21
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();
        }
예제 #22
0
        /// <inheritdoc/>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
            }
            else
            {
                var symbol = (BsonSymbol)value;

                var adapter = writer as BsonWriterAdapter;
                if (adapter != null)
                {
                    adapter.WriteSymbol(symbol.Name);
                }
                else
                {
                    WriteExtendedJson(writer, symbol);
                }
            }
        }
예제 #23
0
 public void WriteToJson(Newtonsoft.Json.JsonWriter writer)
 {
     writer.WriteStartObject();
     writer.WritePropertyName("name");
     writer.WriteValue(this.Name);
     writer.WritePropertyName("offset");
     writer.WriteStartObject();
     writer.WritePropertyName("x");
     writer.WriteValue(this.Offset[0]);
     writer.WritePropertyName("y");
     writer.WriteValue(this.Offset[1]);
     writer.WritePropertyName("z");
     writer.WriteValue(this.Offset[2]);
     writer.WriteEndObject();
     if (this.FreeRotation)
     {
         writer.WritePropertyName("freeRotation");
         writer.WriteValue(true);
     }
     writer.WriteEndObject();
 }
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
            }
            else
            {
                var bsonJavaScript = (BsonJavaScript)value;

                var adapter = writer as BsonWriterAdapter;
                if (adapter != null)
                {
                    adapter.WriteJavaScript(bsonJavaScript.Code);
                }
                else
                {
                    WriteExtendedJson(writer, bsonJavaScript, serializer);
                }
            }
        }
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
        {
            if (value == null)
            {
                writer.WriteNull();
            }
            else
            {
                var timestamp = (BsonTimestamp)value;

                var adapter = writer as BsonWriterAdapter;
                if (adapter != null)
                {
                    adapter.WriteTimestamp(timestamp.Value);
                }
                else
                {
                    WriteExtendedJson(writer, timestamp);
                }
            }
        }
예제 #26
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;
        }
예제 #27
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;
            }
        }
예제 #28
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();
        }
예제 #29
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;
        }
예제 #30
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();
        }