public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (value == null) writer.WriteValue("no"); else writer.WriteValue(((bool)value) ? "yes" : "no"); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var v = value as IFuzziness; if (v.Auto) writer.WriteValue("AUTO"); else if (v.EditDistance.HasValue) writer.WriteValue(v.EditDistance.Value); else if (v.Ratio.HasValue) writer.WriteValue(v.Ratio.Value); else writer.WriteNull(); }
private static void WriteProperty(JsonWriter writer, IFilter filter, string field, object value) { if ((field.IsNullOrEmpty() || value == null)) return; writer.WritePropertyName(field); writer.WriteValue(value); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var marker = value as PropertyNameMarker; if (marker == null) { writer.WriteNull(); return; } writer.WriteValue(this._infer.PropertyName(marker)); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var t = value as ITermsQuery; if (t == null) return; string field = null; var contract = serializer.ContractResolver as SettingsContractResolver; if (contract != null && contract.ConnectionSettings != null) field = contract.Infer.PropertyPath(t.Field); writer.WriteStartObject(); { if (t.Terms.HasAny()) { writer.WritePropertyName(field); serializer.Serialize(writer, t.Terms); } else if (t.ExternalField != null) { writer.WritePropertyName(field); serializer.Serialize(writer, t.ExternalField); } if (t.DisableCoord.HasValue) { writer.WritePropertyName("disable_coord"); writer.WriteValue(t.DisableCoord.Value); } if (!t.MinimumShouldMatch.IsNullOrEmpty()) { writer.WritePropertyName("minimum_should_match"); writer.WriteValue(t.MinimumShouldMatch); } if (t.Boost.HasValue) { writer.WritePropertyName("boost"); writer.WriteValue(t.Boost.Value); } } writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var v = value as DynamicMappingOption?; if (!v.HasValue) { writer.WriteValue(true); return; } switch (v.Value) { case DynamicMappingOption.Strict: writer.WriteValue("strict"); break; case DynamicMappingOption.Ignore: writer.WriteValue(false); break; default: writer.WriteValue(true); break; } }
private void WriteSettingObject(JsonWriter writer, JObject obj) { writer.WriteStartObject(); foreach (var property in obj.Children<JProperty>()) { writer.WritePropertyName(property.Name); if (property.Value is JObject) this.WriteSettingObject(writer, property.Value as JObject); else writer.WriteValue(property.Value); } writer.WriteEndObject(); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { long val; if (value is DateTime) { val = (long)((DateTime)value - EpochUtc).TotalMilliseconds; } else { throw new System.Exception("Expected date object value."); } writer.WriteValue(val); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var similarityValue = (SimilaritySettings)value; if(similarityValue.CustomSimilarities.Count > 0) { serializer.Serialize(writer, similarityValue.CustomSimilarities); } if (!string.IsNullOrEmpty(similarityValue.Default)) { writer.WritePropertyName("similarity.default.type"); writer.WriteValue(similarityValue.Default); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { var marker = value as TypeNameMarker; if (marker == null) { writer.WriteNull(); return; } var contract = serializer.ContractResolver as SettingsContractResolver; if (contract != null && contract.ConnectionSettings != null) { var typeName = contract.Infer.TypeName(marker); writer.WriteValue(typeName); } else throw new System.Exception("If you use a custom contract resolver be sure to subclass from ElasticResolver"); }
/// <summary> /// Writes the JSON representation of the object. /// </summary> /// <param name="writer"></param> /// <param name="value"></param> /// <param name="serializer"></param> public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { if (null == value) { writer.WriteNull(); return; } var uriValue = value as Uri; if (uriValue != null) { writer.WriteValue(uriValue.OriginalString); return; } throw new InvalidOperationException("Unhandled case for UriConverter. Check to see if this converter has been applied to the wrong serialization type."); }
private void WriteIndexSettings(JsonWriter writer, JsonSerializer serializer, IndexSettings indexSettings) { writer.WritePropertyName("index"); writer.WriteStartObject(); if (indexSettings.Settings.HasAny()) { foreach (var kv in indexSettings.Settings) { writer.WritePropertyName(kv.Key); if (kv.Value is JObject) this.WriteSettingObject(writer, kv.Value as JObject); else writer.WriteValue(kv.Value); } } if ( indexSettings.Analysis.Analyzers.Count > 0 || indexSettings.Analysis.TokenFilters.Count > 0 || indexSettings.Analysis.Tokenizers.Count > 0 || indexSettings.Analysis.CharFilters.Count > 0 ) { writer.WritePropertyName("analysis"); serializer.Serialize(writer, indexSettings.Analysis); } if ( indexSettings.Similarity.CustomSimilarities.Count > 0 || !string.IsNullOrEmpty(indexSettings.Similarity.Default) ) { writer.WritePropertyName("similarity"); serializer.Serialize(writer, indexSettings.Similarity); } writer.WriteEndObject(); }
private static void JsonWriteProperty(JsonWriter writer, string propertyName, object value) { try { writer.WritePropertyName(propertyName); writer.WriteValue(value); } catch (JsonWriterException jwe) { SemanticLoggingEventSource.Log.EventEntryJsonWriterFailed(jwe.ToString()); // We are in Error state so abort the write operation throw new InvalidOperationException( string.Format(CultureInfo.CurrentCulture, Resources.JsonSerializationError, jwe.Message), jwe); } }
internal static void WriteValue(JsonWriter writer, PrimitiveTypeCode typeCode, object value) { switch (typeCode) { case PrimitiveTypeCode.Char: writer.WriteValue((char)value); break; case PrimitiveTypeCode.CharNullable: writer.WriteValue((value == null) ? (char?)null : (char)value); break; case PrimitiveTypeCode.Boolean: writer.WriteValue((bool)value); break; case PrimitiveTypeCode.BooleanNullable: writer.WriteValue((value == null) ? (bool?)null : (bool)value); break; case PrimitiveTypeCode.SByte: writer.WriteValue((sbyte)value); break; case PrimitiveTypeCode.SByteNullable: writer.WriteValue((value == null) ? (sbyte?)null : (sbyte)value); break; case PrimitiveTypeCode.Int16: writer.WriteValue((short)value); break; case PrimitiveTypeCode.Int16Nullable: writer.WriteValue((value == null) ? (short?)null : (short)value); break; case PrimitiveTypeCode.UInt16: writer.WriteValue((ushort)value); break; case PrimitiveTypeCode.UInt16Nullable: writer.WriteValue((value == null) ? (ushort?)null : (ushort)value); break; case PrimitiveTypeCode.Int32: writer.WriteValue((int)value); break; case PrimitiveTypeCode.Int32Nullable: writer.WriteValue((value == null) ? (int?)null : (int)value); break; case PrimitiveTypeCode.Byte: writer.WriteValue((byte)value); break; case PrimitiveTypeCode.ByteNullable: writer.WriteValue((value == null) ? (byte?)null : (byte)value); break; case PrimitiveTypeCode.UInt32: writer.WriteValue((uint)value); break; case PrimitiveTypeCode.UInt32Nullable: writer.WriteValue((value == null) ? (uint?)null : (uint)value); break; case PrimitiveTypeCode.Int64: writer.WriteValue((long)value); break; case PrimitiveTypeCode.Int64Nullable: writer.WriteValue((value == null) ? (long?)null : (long)value); break; case PrimitiveTypeCode.UInt64: writer.WriteValue((ulong)value); break; case PrimitiveTypeCode.UInt64Nullable: writer.WriteValue((value == null) ? (ulong?)null : (ulong)value); break; case PrimitiveTypeCode.Single: writer.WriteValue((float)value); break; case PrimitiveTypeCode.SingleNullable: writer.WriteValue((value == null) ? (float?)null : (float)value); break; case PrimitiveTypeCode.Double: writer.WriteValue((double)value); break; case PrimitiveTypeCode.DoubleNullable: writer.WriteValue((value == null) ? (double?)null : (double)value); break; case PrimitiveTypeCode.DateTime: writer.WriteValue((DateTime)value); break; case PrimitiveTypeCode.DateTimeNullable: writer.WriteValue((value == null) ? (DateTime?)null : (DateTime)value); break; #if !NET20 case PrimitiveTypeCode.DateTimeOffset: writer.WriteValue((DateTimeOffset)value); break; case PrimitiveTypeCode.DateTimeOffsetNullable: writer.WriteValue((value == null) ? (DateTimeOffset?)null : (DateTimeOffset)value); break; #endif case PrimitiveTypeCode.Decimal: writer.WriteValue((decimal)value); break; case PrimitiveTypeCode.DecimalNullable: writer.WriteValue((value == null) ? (decimal?)null : (decimal)value); break; case PrimitiveTypeCode.Guid: writer.WriteValue((Guid)value); break; case PrimitiveTypeCode.GuidNullable: writer.WriteValue((value == null) ? (Guid?)null : (Guid)value); break; case PrimitiveTypeCode.TimeSpan: writer.WriteValue((TimeSpan)value); break; case PrimitiveTypeCode.TimeSpanNullable: writer.WriteValue((value == null) ? (TimeSpan?)null : (TimeSpan)value); break; #if !(PORTABLE || PORTABLE40 || NET35 || NET20) case PrimitiveTypeCode.BigInteger: // this will call to WriteValue(object) writer.WriteValue((BigInteger)value); break; case PrimitiveTypeCode.BigIntegerNullable: // this will call to WriteValue(object) writer.WriteValue((value == null) ? (BigInteger?)null : (BigInteger)value); break; #endif case PrimitiveTypeCode.Uri: writer.WriteValue((Uri)value); break; case PrimitiveTypeCode.String: writer.WriteValue((string)value); break; case PrimitiveTypeCode.Bytes: writer.WriteValue((byte[])value); break; #if !(PORTABLE || NETFX_CORE) case PrimitiveTypeCode.DBNull: writer.WriteNull(); break; #endif default: #if !(PORTABLE || NETFX_CORE) if (value is IConvertible) { // the value is a non-standard IConvertible // convert to the underlying value and retry IConvertible convertable = (IConvertible)value; TypeInformation typeInformation = ConvertUtils.GetTypeInformation(convertable); // if convertable has an underlying typecode of Object then attempt to convert it to a string PrimitiveTypeCode resolvedTypeCode = (typeInformation.TypeCode == PrimitiveTypeCode.Object) ? PrimitiveTypeCode.String : typeInformation.TypeCode; Type resolvedType = (typeInformation.TypeCode == PrimitiveTypeCode.Object) ? typeof(string) : typeInformation.Type; object convertedValue = convertable.ToType(resolvedType, CultureInfo.InvariantCulture); WriteValue(writer, resolvedTypeCode, convertedValue); break; } else #endif { throw CreateUnsupportedTypeException(writer, value); } } }
internal void WriteProperties(JsonWriter jsonWriter) { var properties = this._type.GetProperties(); foreach (var p in properties) { var att = ElasticAttributes.Property(p); if (att != null && att.OptOut) continue; var propertyName = this.Infer.PropertyName(p); var type = GetElasticSearchType(att, p); if (type == null) //could not get type from attribute or infer from CLR type. continue; jsonWriter.WritePropertyName(propertyName); jsonWriter.WriteStartObject(); { if (att == null) //properties that follow can not be inferred from the CLR. { jsonWriter.WritePropertyName("type"); jsonWriter.WriteValue(type); //jsonWriter.WriteEnd(); } if (att != null) this.WritePropertiesFromAttribute(jsonWriter, att, propertyName, type); if (type == "object" || type == "nested") { var deepType = GetUnderlyingType(p.PropertyType); var deepTypeName = this.Infer.TypeName(deepType); var seenTypes = new ConcurrentDictionary<Type, int>(this.SeenTypes); seenTypes.AddOrUpdate(deepType, 0, (t, i) => ++i); var newTypeMappingWriter = new TypeMappingWriter(deepType, deepTypeName, this._connectionSettings, MaxRecursion, seenTypes); var nestedProperties = newTypeMappingWriter.MapPropertiesFromAttributes(); jsonWriter.WritePropertyName("properties"); nestedProperties.WriteTo(jsonWriter); } } jsonWriter.WriteEnd(); } }
private void SerializeNode(JsonWriter writer, IXmlNode node, XmlNamespaceManager manager, bool writePropertyName) { switch (node.NodeType) { case XmlNodeType.Document: case XmlNodeType.DocumentFragment: SerializeGroupedNodes(writer, node, manager, writePropertyName); break; case XmlNodeType.Element: if (IsArray(node) && node.ChildNodes.All(n => n.LocalName == node.LocalName) && node.ChildNodes.Count > 0) { SerializeGroupedNodes(writer, node, manager, false); } else { manager.PushScope(); foreach (IXmlNode attribute in node.Attributes) { if (attribute.NamespaceUri == "http://www.w3.org/2000/xmlns/") { string namespacePrefix = (attribute.LocalName != "xmlns") ? attribute.LocalName : string.Empty; string namespaceUri = attribute.Value; manager.AddNamespace(namespacePrefix, namespaceUri); } } if (writePropertyName) writer.WritePropertyName(GetPropertyName(node, manager)); if (!ValueAttributes(node.Attributes).Any() && node.ChildNodes.Count == 1 && node.ChildNodes[0].NodeType == XmlNodeType.Text) { // write elements with a single text child as a name value pair writer.WriteValue(node.ChildNodes[0].Value); } else if (node.ChildNodes.Count == 0 && CollectionUtils.IsNullOrEmpty(node.Attributes)) { IXmlElement element = (IXmlElement)node; // empty element if (element.IsEmpty) writer.WriteNull(); else writer.WriteValue(string.Empty); } else { writer.WriteStartObject(); for (int i = 0; i < node.Attributes.Count; i++) { SerializeNode(writer, node.Attributes[i], manager, true); } SerializeGroupedNodes(writer, node, manager, true); writer.WriteEndObject(); } manager.PopScope(); } break; case XmlNodeType.Comment: if (writePropertyName) writer.WriteComment(node.Value); break; case XmlNodeType.Attribute: case XmlNodeType.Text: case XmlNodeType.CDATA: case XmlNodeType.ProcessingInstruction: case XmlNodeType.Whitespace: case XmlNodeType.SignificantWhitespace: if (node.NamespaceUri == "http://www.w3.org/2000/xmlns/" && node.Value == JsonNamespaceUri) return; if (node.NamespaceUri == JsonNamespaceUri) { if (node.LocalName == "Array") return; } if (writePropertyName) writer.WritePropertyName(GetPropertyName(node, manager)); writer.WriteValue(node.Value); break; case XmlNodeType.XmlDeclaration: IXmlDeclaration declaration = (IXmlDeclaration)node; writer.WritePropertyName(GetPropertyName(node, manager)); writer.WriteStartObject(); if (!string.IsNullOrEmpty(declaration.Version)) { writer.WritePropertyName("@version"); writer.WriteValue(declaration.Version); } if (!string.IsNullOrEmpty(declaration.Encoding)) { writer.WritePropertyName("@encoding"); writer.WriteValue(declaration.Encoding); } if (!string.IsNullOrEmpty(declaration.Standalone)) { writer.WritePropertyName("@standalone"); writer.WriteValue(declaration.Standalone); } writer.WriteEndObject(); break; case XmlNodeType.DocumentType: IXmlDocumentType documentType = (IXmlDocumentType)node; writer.WritePropertyName(GetPropertyName(node, manager)); writer.WriteStartObject(); if (!string.IsNullOrEmpty(documentType.Name)) { writer.WritePropertyName("@name"); writer.WriteValue(documentType.Name); } if (!string.IsNullOrEmpty(documentType.Public)) { writer.WritePropertyName("@public"); writer.WriteValue(documentType.Public); } if (!string.IsNullOrEmpty(documentType.System)) { writer.WritePropertyName("@system"); writer.WriteValue(documentType.System); } if (!string.IsNullOrEmpty(documentType.InternalSubset)) { writer.WritePropertyName("@internalSubset"); writer.WriteValue(documentType.InternalSubset); } writer.WriteEndObject(); break; default: throw new JsonSerializationException("Unexpected XmlNodeType when serializing nodes: " + node.NodeType); } }