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; } }
/// <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; } }