public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var request = value as UpdateListItemsRequest; if (request == null) { writer.WriteNull(); return; } /* "additems" : ["3","4","5"], "adduniqueitems" : ["1","6"], "removeitems": ["2","5"] */ writer.WriteStartObject(); writer.WritePropertyName(request.Property ); writer.WriteStartObject(); if (request.ItemsToAdd.Count > 0) { if (request.AddUniquely == true) writer.WriteArray("adduniqueitems", request.ItemsToAdd); else writer.WriteArray("additems", request.ItemsToAdd); } if (request.ItemsToRemove.Count > 0) writer.WriteArray("removeitems", request.ItemsToRemove); writer.WriteEndObject(); writer.WriteEndObject(); }
public override void WriteJson(NewtonsoftJson.JsonWriter writer, object value, NewtonsoftJson.JsonSerializer serializer) { if (value is Int64) { writer.WriteValue((long)value); } else if (value is DateTime) { writer.WriteValue(((DateTime)value).ToUnixTimeStamp()); } else if (value is DateTime?) { if (((DateTime?)value).HasValue) { writer.WriteValue(((DateTime?)value).Value.ToUnixTimeStamp()); } else { writer.WriteNull(); } } else { writer.WriteNull(); } }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { IList items = (IList)value; if (value != null && items.Count > 0) { if (items.Count == 1 && this.IsSingleItemArray()) { Control item = (Control)items[0]; var pnl = item as AbstractPanel; if (!item.Visible) { writer.WriteNull(); return; } writer.WriteRawValue(this.Format(items[0] as Control)); } else { bool visible = false; foreach (Observable item in items) { if (item.Visible) { visible = true; } } if (visible) { writer.WriteStartArray(); foreach (Observable item in items) { if (item.Visible) { writer.WriteRawValue(this.Format(item)); } } writer.WriteEndArray(); } else { writer.WriteNull(); } } } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var marker = value as Types; if (marker == null) { writer.WriteNull(); return; } marker.Match( all=> writer.WriteNull(), many => writer.WriteValue(((IUrlParameter)marker).GetString(serializer.GetConnectionSettings())) ); }
public override void WriteJson( JsonWriter writer, object value, JsonSerializer serializer ) { if ( value == null ) { writer.WriteNull(); return; } writer.WriteValue(((Date)value).ToString()); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value.IsNot<NestedFilter>()) { writer.WriteNull(); return; } var filter = (NestedFilter)value; writer.WriteStartObject(); writer.WritePropertyName("nested"); writer.WriteStartObject(); if (filter.Path.IsNotNull()) { writer.WritePropertyName("path"); writer.WriteValue(filter.Path); } writer.WritePropertyName("filter"); serializer.Serialize(writer, filter.Filter); if (filter.Join.IsNotNull()) { writer.WritePropertyName("join"); writer.WriteValue(filter.Join); } writer.WriteEndObject(); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { IList items = (IList)value; if (value != null && items.Count > 0) { if (items.Count == 1 && !CanBeSingleItemArray(items[0])) { Control item = (Control)items[0]; PanelBase pnl = item as PanelBase; if (!item.Visible || (pnl != null && pnl.Hidden && pnl.ParentComponent is TabPanel)) { writer.WriteNull(); return; } writer.WriteRawValue(this.Format(items[0] as Control)); } else { bool visible = false; foreach (Observable item in items) { PanelBase pnl = item as PanelBase; bool isTab = pnl != null && pnl.ParentComponent is TabPanel; if (item.Visible && (!isTab || !pnl.Hidden)) { visible = true; } } if (visible) { writer.WriteStartArray(); foreach (Observable item in items) { PanelBase pnl = item as PanelBase; bool isTab = pnl != null && pnl.ParentComponent is TabPanel; if (item.Visible && (!isTab || !pnl.Hidden)) { writer.WriteRawValue(this.Format(item)); } } writer.WriteEndArray(); } else { writer.WriteNull(); } } } }
/// <inheritdoc/> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) writer.WriteNull(); else writer.WriteValue(((TimeSpan)value).TotalMilliseconds); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); } else { Enum @enum = (Enum) value; string first = @enum.ToString("G"); if (char.IsNumber(first[0]) || (int) first[0] == 45) { writer.WriteValue(value); } else { string second; this.GetEnumNameMap(@enum.GetType()).TryGetByFirst(first, out second); second = second ?? first; if (this.CamelCaseText) second = string.Join(", ", Enumerable.ToArray<string>(Enumerable.Select<string, string>((IEnumerable<string>) second.Split(new char[1] { ',' }), (Func<string, string>) (item => StringUtils.ToCamelCase(item.Trim()))))); writer.WriteValue(second); } } }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { EnsureReflectionObject(value.GetType()); DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver; string keyName = (string)_reflectionObject.GetValue(value, KeyPropertyName); object keyValue = _reflectionObject.GetValue(value, ValuePropertyName); Type keyValueType = (keyValue != null) ? keyValue.GetType() : null; writer.WriteStartObject(); writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyPropertyName) : KeyPropertyName); writer.WriteValue(keyName); writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(TypePropertyName) : TypePropertyName); writer.WriteValue((keyValueType != null) ? keyValueType.FullName : null); writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValuePropertyName) : ValuePropertyName); if (keyValueType != null) { string valueJson; if (JsonSerializerInternalWriter.TryConvertToString(keyValue, keyValueType, out valueJson)) writer.WriteValue(valueJson); else writer.WriteValue(keyValue); } else { writer.WriteNull(); } writer.WriteEndObject(); }
public void ValueFormatting() { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); using (JsonWriter jsonWriter = new JsonWriter(sw)) { jsonWriter.WriteStartArray(); jsonWriter.WriteValue('@'); jsonWriter.WriteValue("\r\n\t\f\b?{\\r\\n\"\'"); jsonWriter.WriteValue(true); jsonWriter.WriteValue(10); jsonWriter.WriteValue(10.99); jsonWriter.WriteValue(0.99); jsonWriter.WriteValue(0.000000000000000001d); jsonWriter.WriteValue(0.000000000000000001m); jsonWriter.WriteValue(null); jsonWriter.WriteValue("This is a string."); jsonWriter.WriteNull(); jsonWriter.WriteUndefined(); jsonWriter.WriteEndArray(); } string expected = @"[""@"",""\r\n\t\f\b?{\\r\\n\""'"",true,10,10.99,0.99,1E-18,0.000000000000000001,"""",""This is a string."",null,undefined]"; string result = sb.ToString(); Console.WriteLine("ValueFormatting"); Console.WriteLine(result); Assert.AreEqual(expected, result); }
public override void WriteJson( JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } byte[] data = (byte[])value; // Compose an array. writer.WriteStartArray(); Formatting oldFormatting = writer.Formatting; writer.Formatting = Formatting.None; for (var i = 0; i < data.Length; i++) { writer.WriteValue(data[i]); } writer.WriteEndArray(); writer.Formatting = oldFormatting; }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var marker = value as Indices; if (marker == null) { writer.WriteNull(); return; } marker.Match( all => { writer.WriteStartArray(); writer.WriteValue("_all"); writer.WriteEndArray(); }, many => { var settings = serializer.GetConnectionSettings(); writer.WriteStartArray(); foreach (var m in many.Indices.Cast<IUrlParameter>()) writer.WriteValue(m.GetString(settings)); writer.WriteEndArray(); } ); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (!(value is Enum)) { base.WriteJson(writer, value, serializer); return; } var enumType = value.GetType(); var enumField = enumType.GetField(value.ToString()); var attribute = enumField.GetCustomAttributes<SkyScannerEnumValueAttribute>().FirstOrDefault(); if (attribute == null) { base.WriteJson(writer, value, serializer); return; } if (attribute.Value == null) { writer.WriteNull(); return; } writer.WriteValue(attribute.Value); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var sort = value as SortGeoDistanceDescriptor; if (sort != null) { writer.WriteStartObject(); if (sort._Missing != null) { writer.WritePropertyName("missing"); writer.WriteValue(sort._Missing); } if (sort._Order != null) { writer.WritePropertyName("order"); writer.WriteValue(sort._Order); } if (sort._PinLocation != null) { writer.WritePropertyName(sort._Field); writer.WriteValue(sort._PinLocation); } if (sort._GeoUnit.HasValue) { writer.WritePropertyName("unit"); var v = Enum.GetName(typeof(GeoUnit), sort._GeoUnit.Value); writer.WriteValue(v); } writer.WriteEndObject(); } else writer.WriteNull(); }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param> /// <param name="value">The value.</param> /// <param name="serializer">The calling serializer.</param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } Enum e = (Enum)value; string enumName = e.ToString("G"); if (char.IsNumber(enumName[0]) || enumName[0] == '-') { // enum value has no name so write number writer.WriteValue(value); } else { Type enumType = e.GetType(); string finalName = EnumUtils.ToEnumName(enumType, enumName, CamelCaseText); writer.WriteValue(finalName); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); } else { var id = (HiveId)value; writer.WriteStartObject(); writer.WritePropertyName("htmlId"); writer.WriteValue(id.GetHtmlId()); writer.WritePropertyName("rawValue"); writer.WriteValue(id.ToString()); writer.WritePropertyName("value"); writer.WriteValue(id.Value.Value == null ? "" : id.Value.Value.ToString()); writer.WritePropertyName("valueType"); writer.WriteValue(id.Value.Type); writer.WritePropertyName("provider"); writer.WriteValue(id.ProviderId.IsNullOrWhiteSpace() ? "" : id.ProviderId); writer.WritePropertyName("scheme"); writer.WriteValue(id.ProviderGroupRoot == null ? "" : id.ProviderGroupRoot.ToString()); writer.WriteEndObject(); } }
/// <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(JsonWriter writer, object value, JsonSerializer serializer) { if(value == null) writer.WriteNull(); else writer.WriteValue(value.ToString()); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var collection = (NameValueCollection)value; writer.WriteStartObject(); foreach (var key in collection.AllKeys) { writer.WritePropertyName(key); var values = collection.GetValues(key); if (values == null) { writer.WriteNull(); continue; } if (values.Length == 1) { writer.WriteValue(values[0]); } else { writer.WriteStartArray(); foreach (var item in values) { writer.WriteValue(item); } writer.WriteEndArray(); } } writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { if(value == null) { writer.WriteNull(); return; } MerkleNode mn = value as MerkleNode; writer.WriteStartObject(); writer.WritePropertyName("Data"); serializer.Serialize(writer, mn.Data); writer.WritePropertyName("Hash"); serializer.Serialize(writer, mn.Hash); writer.WritePropertyName("Links"); serializer.Serialize(writer, mn.Links); writer.WritePropertyName("Name"); serializer.Serialize(writer, mn.Name); writer.WritePropertyName("Size"); serializer.Serialize(writer, mn.Size); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value != null) writer.WriteValue(value.ToString()); // adds quotes around the number else writer.WriteNull(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { IFieldQuery fq = value as IFieldQuery; if (fq != null) { writer.WriteStartObject(); writer.WritePropertyName(fq.Field); writer.WriteStartObject(); if (fq is IValue) { IValue v = fq as IValue; writer.WritePropertyName("value"); writer.WriteValue(v.Value); } if (fq.Boost != 1.0) { writer.WritePropertyName("boost"); writer.WriteValue(fq.Boost); } writer.WriteEndObject(); writer.WriteEndObject(); } else writer.WriteNull(); }
private static void WriteObject(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } Type valueType = value.GetType(); TypeInfo valueTypeInfo = valueType.GetTypeInfo(); writer.WriteStartObject(); writer.WritePropertyName("$type"); writer.WriteValue(NameUtility.GetSimpleAssemblyQualifiedName(valueType)); writer.WritePropertyName("$value"); if (valueTypeInfo.IsPrimitive) writer.WriteValue(value); else serializer.Serialize(writer, value); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) writer.WriteNull(); else writer.WriteRawValue(EpochTime.ConvertDateTimeToEpoch((DateTime)value).ToString()); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); } else { var notifications = (ClientNotifications)value; writer.WriteStartArray(); foreach (var p in notifications) { writer.WriteStartObject(); writer.WritePropertyName("id"); writer.WriteValue(p.Id.ToString("N")); writer.WritePropertyName("message"); writer.WriteValue(p.Message); writer.WritePropertyName("title"); writer.WriteValue(p.Title); writer.WritePropertyName("type"); writer.WriteValue(p.Type.ToString().ToLower()); writer.WriteEndObject(); } writer.WriteEndArray(); } }
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { if(value == null) { writer.WriteNull(); return; } EthCall call = value as EthCall; writer.WriteStartObject(); writer.WritePropertyName("from"); serializer.Serialize(writer, call.From); writer.WritePropertyName("to"); serializer.Serialize(writer, call.To); writer.WritePropertyName("gas"); serializer.Serialize(writer, call.Gas); writer.WritePropertyName("gasPrice"); serializer.Serialize(writer, call.GasPrice); writer.WritePropertyName("value"); serializer.Serialize(writer, call.Value); writer.WritePropertyName("data"); serializer.Serialize(writer, call.Data); writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var push = value as PushNotification; if (push == null) { writer.WriteNull(); return; } writer.StartObject(); // Write push type if (string.IsNullOrWhiteSpace(push.Query) == false) writer.WriteProperty("query", push.Query); else if( push.Channels.Count() > 0 ) writer.WriteArray("channels", push.Channels); else if( push.DeviceIds.Count() > 0 ) writer.WriteArray("deviceids", push.DeviceIds); else writer.WriteProperty("broadcast", true); // Write data WriteData(writer, push); // Write platform options WritePlatformOptions(writer, push.PlatformOptions); writer.EndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var request = value as AuthenticateUserRequest; if (request == null) { writer.WriteNull(); return; } writer .StartObject() .WithWriter(w => { if (string.IsNullOrWhiteSpace(request.Type) == false) w.WriteProperty("type", request.Type); if (request.MaxAttempts > 0) w.WriteProperty("attempts").WriteValue(request.MaxAttempts); if (request.TimeoutInSeconds > 0) w.WriteProperty("expiry").WriteValue(request.TimeoutInSeconds); if (request.CreateUserIfNotExists) w.WriteProperty("createnew").WriteValue(request.CreateUserIfNotExists); foreach (var key in request.Attributes.Keys) w.WriteProperty(key, request[key]); }) .EndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) { writer.WriteNull(); return; } Enum e = (Enum)value; string enumName = e.ToString("G"); if (char.IsNumber(enumName[0]) || enumName[0] == '-') { // enum value has no name so write number writer.WriteValue(value); } else { string finalName = SnakeCasePropertyResolver.ToSnakeCase(enumName); _stringEnumConverter.WriteJson(writer, finalName, serializer); } }
public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer) { if(value == null) { writer.WriteNull(); return; } var obj = value as EthSyncing; if(obj.IsSynching) { writer.WriteStartObject(); writer.WritePropertyName(StartingBlockKey); serializer.Serialize(writer, obj.StartingBlock.Value); writer.WritePropertyName(CurrentBlockKey); serializer.Serialize(writer, obj.CurrentBlock.Value); writer.WritePropertyName(HighestBlockKey); serializer.Serialize(writer, obj.HighestBlock.Value); writer.WriteEndObject(); } else { writer.WriteValue(false); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var term = value as Term; if (term != null) { writer.WriteStartObject(); writer.WritePropertyName(term.Field); writer.WriteStartObject(); writer.WritePropertyName("value"); writer.WriteValue(term.Value); if (term.Boost.HasValue) { writer.WritePropertyName("boost"); writer.WriteValue(term.Boost.Value); } var multiTerm = value as IMultiTermQuery; if (multiTerm != null) { if (multiTerm.Rewrite.HasValue) { writer.WritePropertyName("rewrite"); writer.WriteValue(Enum.GetName(typeof(RewriteMultiTerm), multiTerm.Rewrite.Value)); } } writer.WriteEndObject(); writer.WriteEndObject(); } else writer.WriteNull(); }
public override void WriteJson (JsonWriter writer, object objVal, JsonSerializer serializer) { if (objVal == null) { writer.WriteNull(); return; } Type objectType = objVal.GetType(), enumType = GetActualEnumType(objectType); EnumInfo enumInfo = GetEnumInfo(enumType); ulong val = Convert.ToUInt64(objVal); if (!enumType.IsDefined(typeof(FlagsAttribute), false) || val == 0) { var valIndex = enumInfo.Values.IndexOf(val); writer.WriteValue(valIndex != -1 ? enumInfo.Names[valIndex] : objVal.ToString()); } else { var sbVal = new StringBuilder(); bool isFirstVal = true; for (int i = 0; i < enumInfo.Values.Count; i++) { if (enumInfo.Values[i] != 0 && (val & enumInfo.Values[i]) == enumInfo.Values[i]) { val -= enumInfo.Values[i]; if (!isFirstVal) sbVal.Append(", "); sbVal.Append(enumInfo.Names[i]); isFirstVal = false; } } writer.WriteValue(val == 0 ? sbVal.ToString() : objVal.ToString()); } }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { if (value is JFunction) { writer.WriteRawValue((value as JFunction).ToScript()); } else { writer.WriteNull(); } }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { if (DateTime.MinValue.Equals(value)) { writer.WriteNull(); } else { DateTime date = (DateTime)value; writer.WriteValue(date.ToUniversalTime().ToString(@"yyyy-MM-dd\THH:mm:ss.fff\Z")); } }
public void WriteToOneRelationship(JsonWriter writer, JsonApiToOneRelationshipObject value, JsonSerializer serializer) { if (value.Data == null) { //null for empty to-one relationships. writer.WriteNull(); } else { //a single resource identifier object for non - empty to - one relationships. serializer.Serialize(writer, value.Data); } }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { var ext = value as JsonExtension; if (ext == null) { writer.WriteNull(); } else { var json = ext.Serialize(); writer.WriteValue(json); } }
/// <inheritdoc/> public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { var dataRow = value as DataRow; if (dataRow == null) { writer.WriteNull(); return; } var jsonWriter = new JsonWriterAdapter(writer, null); jsonWriter.Write(dataRow); }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { Control control = value as Control; if (control != null) { if (!control.Visible) { writer.WriteNull(); return; } writer.WriteRawValue(this.Format(control)); } }
public override void ValueToJson(Newtonsoft.Json.JsonWriter writer, Row row, JsonSerializer serializer) { var value = _getValue(row); if (value == null) { writer.WriteNull(); } else //if (EnumType == null) şimdilik enum tipi belirtilse de string e çevrilerek yazma işlemi iptal, flag ile daha sonra ekleyelim { writer.WriteValue(value.Value); } //else if (EnumType.IsEnum) // writer.WriteValue(Enum.GetName(EnumType, value.Value)); //else if (EnumType.IsSubclassOf(typeof(DataEnum))) // writer.WriteValue(DataEnum.ConvertFromInt32(EnumType, value.Value).Key); }
public override void WriteJson( Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { switch (value) { case JsonPayload json: writer.WriteRawValue(json); break; case ISerializableObject _: writer.WriteRawValue(Representations.RepresentationManager.ToJson(value)); break; case null: writer.WriteNull(); break; } }
/// <summary> /// Serialise an API event to JSON /// </summary> /// <returns>JObject of the event</returns> public void Serialise(Newtonsoft.Json.JsonWriter writer, Newtonsoft.Json.JsonSerializer serializer) { writer.WriteStartArray(); writer.WriteValue(Graph !.ConstructedTime); writer.WriteValue(Node !.Index); writer.WriteValue(Index); writer.WriteValue(Repeats); writer.WriteValue(UniqID); if (APIDetails.HasValue) { serializer.Serialize(writer, APIDetails); } else { writer.WriteNull(); } writer.WriteEndArray(); }
public override void ValueToJson(Newtonsoft.Json.JsonWriter writer, Row row, JsonSerializer serializer) { var value = _getValue(row); if (value == null) { writer.WriteNull(); } else if (EnumType == null) { writer.WriteValue(value.Value); } else if (EnumType.IsEnum) { writer.WriteValue(Enum.GetName(EnumType, value.Value)); } else if (EnumType.IsSubclassOf(typeof(DataEnum))) { writer.WriteValue(DataEnum.ConvertFromInt32(EnumType, value.Value).Key); } }
public override void WriteJson(Newtonsoft.Json.JsonWriter writer, object value, JsonSerializer serializer) { IList items = (IList)value; if (value != null && items.Count > 0) { if (items.Count == 1 && this.IsSingleItemArray()) { Control item = (Control)items[0]; if (!item.Visible) { writer.WriteNull(); return; } if (!(item is IProxyContainer)) { writer.WriteRawValue(this.Format(items[0] as Control)); } else { List <string> ids = ((IProxyContainer)item).GetIDS(); if (ids != null && ids.Count > 0) { if (ids.Count == 1) { writer.WriteRawValue(this.Format(ids[0])); } else { writer.WriteStartArray(); foreach (string id in ids) { writer.WriteRawValue(this.Format(id)); } writer.WriteEndArray(); } } } } else { bool visible = false; foreach (Observable item in items) { if (item.Visible) { visible = true; } } if (visible) { writer.WriteStartArray(); foreach (Observable item in items) { if (item.Visible) { if (!(item is IProxyContainer)) { writer.WriteRawValue(this.Format(item)); } else { List <string> ids = ((IProxyContainer)item).GetIDS(); if (ids != null && ids.Count > 0) { foreach (string id in ids) { writer.WriteRawValue(this.Format(id)); } } } } } writer.WriteEndArray(); } else { writer.WriteNull(); } } } }
private void SerializeValue(JsonWriter writer, object value) { JsonConverter converter; if (value == null) { writer.WriteNull(); } else if (HasMatchingConverter(value.GetType(), out converter)) { converter.WriteJson(writer, value); } else if (value is IConvertible) { IConvertible convertible = value as IConvertible; switch (convertible.GetTypeCode()) { case TypeCode.String: writer.WriteValue((string)convertible); break; case TypeCode.Char: writer.WriteValue((char)convertible); break; case TypeCode.Boolean: writer.WriteValue((bool)convertible); break; case TypeCode.SByte: writer.WriteValue((sbyte)convertible); break; case TypeCode.Int16: writer.WriteValue((short)convertible); break; case TypeCode.UInt16: writer.WriteValue((ushort)convertible); break; case TypeCode.Int32: writer.WriteValue((int)convertible); break; case TypeCode.Byte: writer.WriteValue((byte)convertible); break; case TypeCode.UInt32: writer.WriteValue((uint)convertible); break; case TypeCode.Int64: writer.WriteValue((long)convertible); break; case TypeCode.UInt64: writer.WriteValue((ulong)convertible); break; case TypeCode.Single: writer.WriteValue((float)convertible); break; case TypeCode.Double: writer.WriteValue((double)convertible); break; case TypeCode.DateTime: writer.WriteValue((DateTime)convertible); break; case TypeCode.Decimal: writer.WriteValue((decimal)convertible); break; default: SerializeObject(writer, value); break; } } else if (value is IList) { SerializeList(writer, (IList)value); } else if (value is IDictionary) { SerializeDictionary(writer, (IDictionary)value); } else if (value is ICollection) { SerializeCollection(writer, (ICollection)value); } else if (value is Identifier) { writer.WriteRaw(value.ToString()); } else { Type valueType = value.GetType(); SerializeObject(writer, value); } }