本文整理汇总了C#中Raven.Imports.Newtonsoft.Json.JsonWriter.WriteEndObject方法的典型用法代码示例。如果您正苦于以下问题:C# JsonWriter.WriteEndObject方法的具体用法?C# JsonWriter.WriteEndObject怎么用?C# JsonWriter.WriteEndObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Raven.Imports.Newtonsoft.Json.JsonWriter
的用法示例。
在下文中一共展示了JsonWriter.WriteEndObject方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteJson
/// <summary>
/// Writes the JSON representation of the object.
/// </summary>
/// <param name="writer">The <see cref="T:Raven.Imports.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();
return;
}
if (value.GetType() == typeof (object))
{
writer.WriteStartObject();
writer.WriteEndObject();
return;
}
var dynamicValue = ((IDynamicMetaObjectProvider) value).GetMetaObject(Expression.Constant(value));
writer.WriteStartObject();
foreach (var dynamicMemberName in dynamicValue.GetDynamicMemberNames())
{
writer.WritePropertyName(dynamicMemberName);
var memberValue = DynamicUtil.GetValueDynamically(value, dynamicMemberName);
if(memberValue == null || memberValue is ValueType || memberValue is string)
writer.WriteValue(memberValue);
else
serializer.Serialize(writer, memberValue);
}
writer.WriteEndObject();
}
示例2: WriteJson
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();
}
示例3: TryWriteFeature
public bool TryWriteFeature(JsonWriter writer, object value, JsonSerializer serializer)
{
if (!_shapeConverter.CanConvert(ObjectType.Feature))
return false;
ObjectType geomType = _shapeConverter.GetObjectType(value);
if (geomType != ObjectType.Feature)
return false;
writer.WriteStartObject();
writer.WritePropertyName("type");
writer.WriteValue(Enum.GetName(typeof(ObjectType), ObjectType.Feature));
object id;
Dictionary<string, object> props;
var geometry = _shapeConverter.FromFeature(value, out id, out props);
if (id != null)
{
writer.WritePropertyName("id");
serializer.Serialize(writer, id);
}
if (props != null && props.Count > 0)
{
writer.WritePropertyName("properties");
serializer.Serialize(writer, props);
}
writer.WritePropertyName("geometry");
serializer.Serialize(writer, geometry);
writer.WriteEndObject();
return true;
}
示例4: WriteObject
private void WriteObject(JsonWriter writer, object value) {
writer.WriteStartObject();
var obj = value as IDictionary<string, object>;
foreach (var kvp in obj) {
writer.WritePropertyName(kvp.Key);
this.WriteValue(writer, kvp.Value);
}
writer.WriteEndObject();
}
示例5: WriteJson
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
System.Net.IPEndPoint ep = (System.Net.IPEndPoint)value;
writer.WriteStartObject();
writer.WritePropertyName("Address");
serializer.Serialize(writer, ep.Address.ToString());
writer.WritePropertyName("Port");
writer.WriteValue(ep.Port);
writer.WriteEndObject();
}
示例6: WriteModelMetaData
private void WriteModelMetaData(JsonWriter writer, Model.MetaData obj) {
var t = obj.GetType();
var properties = t.GetProperties();
writer.WriteStartObject();
foreach (var property in properties) {
writer.WritePropertyName(property.Name);
writer.WriteValue(property.GetValue(obj));
}
writer.WriteEndObject();
}
示例7: WriteJson
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
IGeometry geom = value as IGeometry;
if (geom == null)
return;
writer.WriteStartObject();
GeoJsonObjectType geomType = this.ToGeoJsonObject(geom);
writer.WritePropertyName("type");
writer.WriteValue(Enum.GetName(typeof(GeoJsonObjectType), geomType));
switch (geomType)
{
case GeoJsonObjectType.Point:
serializer.Serialize(writer, geom.Coordinate);
break;
case GeoJsonObjectType.LineString:
case GeoJsonObjectType.MultiPoint:
serializer.Serialize(writer, geom.Coordinates);
break;
case GeoJsonObjectType.Polygon:
IPolygon poly = geom as IPolygon;
Debug.Assert(poly != null);
serializer.Serialize(writer, PolygonCoordiantes(poly));
break;
case GeoJsonObjectType.MultiPolygon:
IMultiPolygon mpoly = geom as IMultiPolygon;
Debug.Assert(mpoly != null);
List<List<Coordinate[]>> list = new List<List<Coordinate[]>>();
foreach (IPolygon mempoly in mpoly.Geometries)
list.Add(PolygonCoordiantes(mempoly));
serializer.Serialize(writer, list);
break;
case GeoJsonObjectType.GeometryCollection:
IGeometryCollection gc = geom as IGeometryCollection;
Debug.Assert(gc != null);
serializer.Serialize(writer, gc.Geometries);
break;
default:
List<Coordinate[]> coordinates = new List<Coordinate[]>();
foreach (IGeometry geometry in ((IGeometryCollection)geom).Geometries)
coordinates.Add(geometry.Coordinates);
serializer.Serialize(writer, coordinates);
break;
}
writer.WriteEndObject();
}
示例8: WriteObject
private void WriteObject(JsonWriter writer, object value) {
writer.WriteStartObject();
var obj = value as IDictionary<string, object>;
foreach (var kvp in obj) {
writer.WritePropertyName(kvp.Key);
if (kvp.Value is Model.MetaData) {
this.WriteModelMetaData(writer, kvp.Value as Model.MetaData);
continue;
}
this.WriteValue(writer, kvp.Value);
}
writer.WriteEndObject();
}
示例9: WriteJson
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteStartArray();
foreach (object item in (IEnumerable) value)
{
writer.WriteStartObject();
writer.WritePropertyName("CrlType");
writer.WriteValue(item.GetType().AssemblyQualifiedName);
writer.WritePropertyName("Value");
serializer.Serialize(writer, item);
writer.WriteEndObject();
}
writer.WriteEndArray();
}
示例10: WriteJson
/// <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 (writer == null)
throw new ArgumentNullException("writer");
if (serializer == null)
throw new ArgumentNullException("serializer");
Feature feature = value as Feature;
if (feature == null)
return;
writer.WriteStartObject();
writer.WritePropertyName("type");
writer.WriteValue("Feature");
writer.WritePropertyName("geometry");
serializer.Serialize(writer, feature.Geometry);
serializer.Serialize(writer, feature.Attributes);
writer.WriteEndObject();
}
示例11: WriteJson
/// <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 (writer == null)
throw new ArgumentNullException("writer");
IAttributesTable attributes = value as IAttributesTable;
if (attributes == null)
return;
writer.WritePropertyName("properties");
writer.WriteStartObject();
string[] names = attributes.GetNames();
foreach (string name in names)
{
writer.WritePropertyName(name);
writer.WriteValue(attributes[name]);
}
writer.WriteEndObject();
}
示例12: WriteJson
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (writer == null)
throw new ArgumentNullException("writer");
if (serializer == null)
throw new ArgumentNullException("serializer");
ICRSObject crs = value as ICRSObject;
if (crs == null)
return;
writer.WriteStartObject();
writer.WritePropertyName("type");
string type = Enum.GetName(typeof(CRSTypes), crs.Type);
writer.WriteValue(type.ToLowerInvariant());
CRSBase crsb = value as CRSBase;
if (crsb != null)
{
writer.WritePropertyName("properties");
serializer.Serialize(writer, crsb.Properties);
}
writer.WriteEndObject();
}
示例13: WriteJson
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (writer == null)
throw new ArgumentNullException("writer");
if (serializer == null)
throw new ArgumentNullException("serializer");
FeatureCollection coll = value as FeatureCollection;
if (coll == null)
return;
writer.WriteStartObject();
writer.WritePropertyName("features");
serializer.Serialize(writer, coll.Features);
writer.WritePropertyName("type");
writer.WriteValue(coll.Type);
if (coll.CRS != null)
{
writer.WritePropertyName("crs");
serializer.Serialize(writer, coll.CRS);
}
writer.WriteEndObject();
}
示例14: TryWriteGeo
public bool TryWriteGeo(JsonWriter writer, object value, JsonSerializer serializer)
{
var route = value as Route;
if (route != null)
{
writer.WriteStartObject();
writer.WritePropertyName("__geo");
writer.WriteStartObject();
writer.WritePropertyName("type");
writer.WriteValue("Route");
if (route.Metadata.Count > 0)
{
writer.WritePropertyName("metadata");
serializer.Serialize(writer, route.Metadata);
}
writer.WriteEndObject();
writer.WritePropertyName("type");
writer.WriteValue(Enum.GetName(typeof(ObjectType), ObjectType.LineString));
writer.WritePropertyName("coordinates");
WriteJsonCoordinates(writer, _shapeConverter.FromLineString(route.ToLineString()));
writer.WriteEndObject();
return true;
}
var track = value as Track;
if (track != null)
{
writer.WriteStartObject();
writer.WritePropertyName("__geo");
writer.WriteStartObject();
writer.WritePropertyName("type");
writer.WriteValue("Track");
if (track.Metadata.Count > 0)
{
writer.WritePropertyName("metadata");
serializer.Serialize(writer, track.Metadata);
}
writer.WritePropertyName("times");
writer.WriteStartArray();
foreach (var segment in track.Segments)
{
writer.WriteStartArray();
foreach (var fix in segment.Fixes)
writer.WriteValue(fix.TimeUtc);
writer.WriteEndArray();
}
writer.WriteEndArray();
writer.WriteEndObject();
writer.WritePropertyName("type");
writer.WriteValue(Enum.GetName(typeof(ObjectType), ObjectType.LineString));
writer.WritePropertyName("coordinates");
WriteJsonCoordinates(writer, _shapeConverter.FromLineString(track.ToLineString()));
writer.WriteEndObject();
return true;
}
return false;
}
示例15: TryWriteGeometryCollection
public bool TryWriteGeometryCollection(JsonWriter writer, object value, JsonSerializer serializer)
{
if (!_shapeConverter.CanConvert(ObjectType.GeometryCollection))
return false;
ObjectType geomType = _shapeConverter.GetObjectType(value);
if (geomType != ObjectType.GeometryCollection)
return false;
writer.WriteStartObject();
writer.WritePropertyName("type");
writer.WriteValue(Enum.GetName(typeof(ObjectType), geomType));
writer.WritePropertyName("geometries");
writer.WriteStartArray();
foreach (var geometry in _shapeConverter.FromGeometryCollection(value))
serializer.Serialize(writer, geometry);
writer.WriteEndArray();
writer.WriteEndObject();
return true;
}