public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { DrapoObject obj = new DrapoObject(); while (reader.Read()) { if (reader.TokenType == JsonToken.PropertyName) { continue; } if (reader.TokenType == JsonToken.EndObject) { continue; } obj.Properties.Add(reader.Path, reader.Value); } return(obj); }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { DrapoObject obj = (DrapoObject)value; writer.WriteStartObject(); foreach (KeyValuePair <string, object> entry in obj.GetProperties(true)) { writer.WritePropertyName(entry.Key); if (this.WriteJsonArray(writer, entry.Value, serializer)) { continue; } DrapoObject objValue = entry.Value as DrapoObject; if (objValue == null) { writer.WriteValue(entry.Value); } else { this.WriteJson(writer, objValue, serializer); } } writer.WriteEnd(); }