Example #1
0
        public void Write(IJsonWriter writer)
        {
            switch (JsonType)
            {
            case JsonType.Null:

                writer.WriteNull();

                break;

            case JsonType.Boolean:

                writer.WriteBoolean(AsBool());

                break;

            case JsonType.String:

                writer.WriteString(_string);

                break;

            case JsonType.Number:

                if (_long.HasValue)
                {
                    writer.WriteLong(_long.Value);
                }
                else
                {
                    writer.WriteReal(_real.GetValueOrDefault());
                }

                break;

            case JsonType.Object:

                writer.WriteObject(this);

                break;

            case JsonType.Array:

                writer.WriteArray(this);

                break;
            }
        }
Example #2
0
 /// <summary>
 /// The encode.
 /// </summary>
 /// <param name="value">The value.</param>
 /// <param name="writer">The writer.</param>
 public void Encode(bool value, IJsonWriter writer)
 {
     writer.WriteBoolean(value);
 }
 /// <inheritdoc/>
 public override void Write(IJsonWriter writer)
 {
     writer.WriteBoolean(this.Value);
 }
        public override void Serialize(IJsonWriter writer, object value)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            switch (primitiveTypeCode)
            {
            case TypeCode.Boolean:
                writer.WriteBoolean((bool)value);
                break;

            case TypeCode.Byte:
                writer.WriteNumber((byte)value);
                break;

            case TypeCode.DateTime:
                writer.WriteDateTime((DateTime)value);
                break;

            case TypeCode.Decimal:
                writer.WriteNumber((decimal)value);
                break;

            case TypeCode.Double:
                writer.WriteNumber((double)value);
                break;

            case TypeCode.Int16:
                writer.WriteNumber((short)value);
                break;

            case TypeCode.Int32:
                writer.WriteNumber((int)value);
                break;

            case TypeCode.Int64:
                writer.WriteNumber((long)value);
                break;

            case TypeCode.SByte:
                writer.WriteNumber((sbyte)value);
                break;

            case TypeCode.Single:
                writer.WriteNumber((float)value);
                break;

            case TypeCode.UInt16:
                writer.WriteNumber((ushort)value);
                break;

            case TypeCode.UInt32:
                writer.WriteNumber((uint)value);
                break;

            case TypeCode.UInt64:
                writer.WriteNumber((ulong)value);
                break;

            default:
                var valueStr = default(string);

                if (value is IFormattable)
                {
                    valueStr = (string)Convert.ChangeType(value, typeof(string), writer.Context.Format);
                }
                else
                {
                    valueStr = value.ToString();
                }

                writer.WriteString(valueStr);
                break;
            }
        }