Example #1
0
        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);
        }
Example #2
0
        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();
        }