Пример #1
0
        public bool Write(IDictionary value)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("{");

            DJsonWriter writer = new DJsonWriter();
            var         e      = value.GetEnumerator();

            while (e.MoveNext())
            {
                var keyWriter = new DJsonWriter();
                keyWriter.Write(e.Key);

                var valueWriter = new DJsonWriter();
                valueWriter.Write(e.Value);

                string str = string.Format("{0}:{1}", keyWriter, valueWriter);
                if (!writer.Write(str))
                {
                    return(false);
                }
            }
            sb.Append(writer.ToString());

            sb.Append("}");

            return(this.Write(sb.ToString()));
        }
Пример #2
0
        public bool Write(IList value)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("[");

            DJsonWriter writer = new DJsonWriter();
            var         eKey   = value.GetEnumerator();

            while (eKey.MoveNext())
            {
                if (!writer.Write(eKey.Current))
                {
                    return(false);
                }
            }
            sb.Append(writer.ToString());

            sb.Append("]");

            return(this.Write(sb.ToString()));
        }
Пример #3
0
        private bool WriteObject(object obj)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("[{");

            var writer = new DJsonWriter();

            var type      = obj.GetType();
            var listField = DataHelper.GetClassFields(type);

            if (listField == null)
            {
                return(false);
            }
            for (int i = 0; i < listField.Count; i++)
            {
                var field = listField[i];

                var keyWriter = new DJsonWriter();
                keyWriter.Write(field.Name);

                var value       = field.GetValue(obj);
                var valueWriter = new DJsonWriter();
                valueWriter.Write(value);

                string str = string.Format("{0}:{1}", keyWriter.ToString(), valueWriter.ToString());
                if (!writer.Write(str))
                {
                    return(false);
                }
            }
            sb.Append(writer.ToString());
            sb.Append("}]");
            return(this.Write(sb.ToString()));
        }