void SerializeArray(IRTSList anArray, bool list2dict, bool perfectPrint) { if (list2dict) { if (perfectPrint) { builder.Append(indent); } builder.Append("{"); indent = indent + " "; int i = 0; foreach (object obj in anArray) { if (i > 0) { builder.Append(','); } if (perfectPrint) { builder.AppendLine(); builder.Append(indent); } builder.Append("\""); builder.Append(RTSListUtil.ToKey(anArray.GetPriority(i))); builder.Append("\":"); SerializeValue(false, obj, list2dict, perfectPrint); i++; } indent = indent.Substring(4); if (perfectPrint) { builder.AppendLine(); builder.Append(indent); } builder.Append("}"); } else { if (perfectPrint) { builder.Append(indent); } builder.Append('['); indent = indent + " "; bool first = true; foreach (object obj in anArray) { if (!first) { builder.Append(','); } if (perfectPrint) { builder.AppendLine(); builder.Append(indent); } SerializeValue(false, obj, list2dict, perfectPrint); first = false; } indent = indent.Substring(4); if (perfectPrint) { builder.AppendLine(); builder.Append(indent); } builder.Append(']'); } }
bool ParseObjectArray(IRTSList array, Type type) { switch (NextToken) { case TOKEN.CURLY_OPEN: json.Read(); while (true) { switch (NextToken) { case TOKEN.NONE: return(false); case TOKEN.COMMA: continue; case TOKEN.CURLY_CLOSE: return(true); } string name = ParseString(type_string); if (name == null) { return(false); } if (NextToken != TOKEN.COLON) { return(false); } json.Read(); object value = ParseNext(type); if (!double.IsNaN(RTSListUtil.FromKey(name))) { double p = double.Parse(name.Substring(1, name.Length - 1)); if (array != null) { array.RawAdd(p, value); } } else { if (array != null) { array.Add(value); } } } case TOKEN.SQUARED_OPEN: json.Read(); while (true) { switch (NextToken) { case TOKEN.NONE: return(false); case TOKEN.COMMA: continue; case TOKEN.SQUARED_CLOSE: return(true); default: object value = ParseNext(type); if (array != null) { array.Add(value); } break; } } } return(false); }