예제 #1
0
        protected static bool SerializeObject(Hashtable anObject, StringBuilder builder)
        {
            builder.Append("{");
            IDictionaryEnumerator enumerator = anObject.GetEnumerator();
            bool flag = true;

            while (enumerator.MoveNext())
            {
                string aString = enumerator.Key.ToString();
                object value   = enumerator.Value;
                if (!flag)
                {
                    builder.Append(", ");
                }
                JsonParser.SerializeString(aString, builder);
                builder.Append(":");
                if (!JsonParser.SerializeValue(value, builder))
                {
                    return(false);
                }
                flag = false;
            }
            builder.Append("}");
            return(true);
        }
예제 #2
0
        protected static bool SerializeValue(object value, StringBuilder builder)
        {
            bool result = true;

            if (value is string)
            {
                result = JsonParser.SerializeString((string)value, builder);
            }
            else if (value is Hashtable)
            {
                result = JsonParser.SerializeObject((Hashtable)value, builder);
            }
            else if (value is ArrayList)
            {
                result = JsonParser.SerializeArray((ArrayList)value, builder);
            }
            else if (JsonParser.IsNumeric(value))
            {
                result = JsonParser.SerializeNumber(Convert.ToDouble(value), builder);
            }
            else if (value is bool && (bool)value)
            {
                builder.Append("true");
            }
            else if (value is bool && !(bool)value)
            {
                builder.Append("false");
            }
            else if (value == null)
            {
                builder.Append("null");
            }
            else
            {
                result = false;
            }
            return(result);
        }