protected static bool serializeObject(Hashtable anObject, StringBuilder builder) { builder.Append("{"); IDictionaryEnumerator enumerator = anObject.GetEnumerator(); bool flag = true; while (enumerator.MoveNext()) { string aString = enumerator.get_Key().ToString(); object value = enumerator.get_Value(); if (!flag) { builder.Append(", "); } MiniJSON.serializeString(aString, builder); builder.Append(":"); if (!MiniJSON.serializeValue(value, builder)) { return(false); } flag = false; } builder.Append("}"); return(true); }
protected static bool serializeValue(object value, StringBuilder builder) { if (value == null) { builder.Append("null"); } else if (value.GetType().get_IsArray()) { MiniJSON.serializeArray(new ArrayList((ICollection)value), builder); } else if (value is string) { MiniJSON.serializeString((string)value, builder); } else if (value is char) { MiniJSON.serializeString(Convert.ToString((char)value), builder); } else if (value is Hashtable) { MiniJSON.serializeObject((Hashtable)value, builder); } else if (value is Dictionary <string, string> ) { MiniJSON.serializeDictionary((Dictionary <string, string>)value, builder); } else if (value is ArrayList) { MiniJSON.serializeArray((ArrayList)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.GetType().get_IsPrimitive()) { return(false); } MiniJSON.serializeNumber(Convert.ToDouble(value), builder); } return(true); }
protected static bool serializeDictionary(Dictionary <string, string> dict, StringBuilder builder) { builder.Append("{"); bool flag = true; using (Dictionary <string, string> .Enumerator enumerator = dict.GetEnumerator()) { while (enumerator.MoveNext()) { KeyValuePair <string, string> current = enumerator.get_Current(); if (!flag) { builder.Append(", "); } MiniJSON.serializeString(current.get_Key(), builder); builder.Append(":"); MiniJSON.serializeString(current.get_Value(), builder); flag = false; } } builder.Append("}"); return(true); }